rsync để sao chép các tập tin đã thay đổi


42

Tôi cần sao chép một số tệp từ một thư mục cụ thể sang một vị trí khác trên cơ sở hàng ngày. Tôi chỉ muốn sao chép các thay đổi, nên lập kế hoạch sử dụng rsync. Các tệp này tuân theo quy ước đặt tên saumysql-bin.*

Lệnh của tôi trông như sau

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

Sự nhầm lẫn của tôi là vì tôi dự định chỉ sao chép một vài tệp từ một thư mục chứ không phải nội dung thư mục đầy đủ, tôi đã sử dụng * để chỉ sao chép các tệp yêu cầu. Chỉ muốn biết liệu lệnh của tôi là chính xác để đạt được như vậy.

Câu trả lời:


51

Có vẻ ổn. Mặc dù tại sao bạn sử dụng -ztùy chọn để nén chuyển? Tùy chọn này thường được sử dụng khi bạn sao chép vào máy chủ rsync từ xa qua mạng chậm. Trong trường hợp này, nó sẽ nén và giải nén ngay lập tức các tệp sẽ chỉ tăng uage CPU của bạn mà không có lợi ích.

Các -a(lưu trữ) tùy chọn bao hàm các -rtùy chọn (đệ quy) vì vậy không có cần thiết phải chỉ định rõ ràng rằng trên dòng lệnh.

Bạn có thể sử dụng -ntùy chọn (hoặc --dry-run) để kiểm tra lệnh của mình. Nó sẽ hiển thị những gì nó sẽ làm mà không thực sự sao chép bất kỳ tập tin. Để thực sự thấy những gì xảy ra, bạn cũng nên sử dụng -vtùy chọn (hoặc --verbose).

Vì thế:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

và một khi bạn hài lòng rằng các tệp được liệt kê chính xác khi chạy khô, hãy xóa nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

3
Như đã nói trong --dry-runcờ trang người đàn ông thường được sử dụng nhất cùng với --verbosecờ
Benjamin Leinweber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.