Hiện tại tôi chỉ RSync-ing Directories
như sau:
* * * * * rsync -avz /var/www/public_html/images root@<remote-ip>:/var/www/public_html
Vì vậy, làm thế nào để tôi có rsync
một tệp duy nhất như thế /var/www/public_html/.htaccess
nào?
Câu trả lời:
Bạn làm điều đó giống như cách bạn làm với một thư mục, nhưng bạn chỉ định đường dẫn đầy đủ đến tên tệp làm nguồn. Trong ví dụ của bạn:
rsync -avz --progress /var/www/public_html/.htaccess root@<remote-ip>:/var/www/public_html/
Như đã đề cập trong phần nhận xét: vì -a
bao gồm đệ quy , một chút lỗi đánh máy có thể khiến nó bắt đầu quá trình chuyển cây thư mục đầy đủ, vì vậy, một cách tiếp cận chống đánh lừa hơn có thể chỉ sử dụng -vz
hoặc thay thế nó bằng -lptgoD
.
Câu trả lời của Michael Place hoạt động tốt nếu, liên quan đến thư mục gốc cho cả nguồn và đích, tất cả các thư mục trong đường dẫn của tệp đã tồn tại.
Nhưng điều gì sẽ xảy ra nếu bạn muốn đồng bộ hóa một tệp với đường dẫn nguồn này:
/ source-root / a / b / file
đến một tệp có đường dẫn đích sau:
/ target-root / a / b / file
và các thư mục a và b không tồn tại?
Bạn cần chạy một lệnh rsync như sau:
rsync -r --include="/a/" --include="/a/b/" --include="/a/b/file" --exclude="*" [source] [target]
Cho đến nay, hai trong số các câu trả lời không hoàn toàn đúng, họ sẽ nhận được nhiều hơn một tệp và tệp còn lại không đơn giản như nó có thể, đây là một IMO câu trả lời đơn giản hơn.
Phần sau có chính xác một tệp, nhưng bạn phải tạo thư mục đích bằng mkdir. Đây có lẽ là lựa chọn nhanh nhất:
mkdir -p ./local/path/to/file
rsync user@remote:/remote/path/to/file/ -zarv --include "filename" --exclude "*" ./local/path/to/file/
Nếu chỉ có một phiên bản của tệp trong / remote / path, rsync có thể tạo các thư mục cho bạn nếu bạn làm như sau. Điều này có thể sẽ mất nhiều thời gian hơn vì nó tìm kiếm nhiều thư mục hơn. Thêm vào đó, nó sẽ tạo các thư mục trống cho các thư mục trong / remote / path không có trong ./local
cd ./local
rsync user@remote:/remote/path -zarv --include "*/" --include "filename" --exclude "*" .
Hãy nhớ rằng thứ tự - bao gồm và - bao gồm quan trọng.