2011-08-24 29 views
24

Tôi sao lưu các tệp của mình bằng rsync. Ngay sau khi đồng bộ, tôi chạy nó mong đợi để không nhìn thấy gì, nhưng thay vào đó nó trông giống như nó đã bỏ qua thư mục. Tôi đã (rõ ràng) đã thay đổi tên, nhưng tôi tin rằng tôi vẫn còn nắm bắt tất cả các thông tin tôi có thể. Điều gì đang xảy ra ở đây?in rsync "bỏ qua tập tin không thường xuyên" cho những gì dường như là một thư mục thông thường

$ ls -l /source/backup/myfiles 
drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo 
drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar 
drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz 

$ ls -l /destination/backup/myfiles 
drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo 
drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar 
drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz 

$ file /source/backup/myfiles/foo 
/source/backup/myfiles/foo/: directory 

Sau đó, tôi đồng bộ (dự kiến ​​không có thay đổi):

$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

Và đây là phần lạ:

$ echo 'hi' > /source/backup/myfiles/foo/test 
$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
backup/myfiles/foo 
backup/myfiles/foo/test 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

Vì vậy, nó làm việc:

$ ls -l /source/backup/myfiles/foo 
-rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG 
-rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG 
-rw-r--r-- 1 me me  3 2011-08-24 13:53 test 

$ ls -l /destination/backup/myfiles/foo 
-rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG 
-rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG 
-rw-r--r-- 1 me me  3 2011-08-24 13:53 test 

nhưng vẫn:

$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

ghi chú khác:

thư mục thực tế của tôi "foo" và "thanh" Ý có không gian, nhưng không có ký tự lạ khác. Các thư mục khác có không gian và không có vấn đề gì. Tôi 'stat'-ed và thấy không có sự khác biệt giữa các thư mục mà không rsync và những người làm.

Nếu bạn cần thêm thông tin, chỉ cần hỏi.

Trả lời

4

Bạn có chắc chắn rằng đó không phải là thư mục liên kết tượng trưng không?

thử một:

file /source/backup/myfiles/foo 

để chắc chắn rằng nó là một thư mục

Ngoài ra, nó rất có thể gắn một loopback thử

mount 

và chắc chắn rằng/nguồn/sao lưu/myfiles/foo không được liệt kê.

+0

'$ file/nguồn/sao lưu/myfiles/foo' '/nguồn/sao lưu/myfiles/foo /: directory' và 'mount' hiển thị các hệ thống tệp/nguồn và/đích đang bật, nhưng không có 'thấp hơn'. – Richard

31

Bạn có chắc chắn rằng các tệp riêng lẻ không phải là liên kết tượng trưng không?

Rsync có một số cờ hữu ích như -l sẽ "sao chép liên kết tượng trưng dưới dạng liên kết tượng trưng". Thêm -l để lệnh của bạn:

rsync -rtvpl /source/backup /destination 

Tôi tin symlink được bỏ qua theo mặc định bởi vì họ có thể là một nguy cơ bảo mật.Kiểm tra trang người đàn ông hoặc --help để biết thêm về vấn đề này:

rsync --help | grep link 

Để xác minh đây là những liên kết tượng trưng hoặc ủng hộ tích cực để tìm liên kết tượng trưng, ​​bạn có thể sử dụng tập tin hoặc tìm:

$ file /path/to/file 
/path/to/file: symbolic link to `/path/file` 
$ find /path -type l 
/path/to/file 
+0

Tuy nhiên, một ví dụ khác về thông báo lỗi/trạng thái bị từ sai. Nếu mã của bạn bỏ qua tệp vì đó là một liên kết tượng trưng, ​​vậy tại sao không in "bỏ qua liên kết tượng trưng"? – bsd

+0

Đoán của tôi là rsync cũ hơn symlink. Có lẽ họ chỉ không bận tâm để thêm nó vì nó là một trường hợp sử dụng hiếm gặp. Không có gì ngăn bạn đóng góp: https://rsync.samba.org/bugzilla.html – zaTricky

0

Bạn có thể thử những điều sau đây, nó sẽ làm việc

rsync -rtvp /source/backup /destination 
+0

Tệp vẫn bị bỏ qua – chestozo

1

Bạn nên thử các lệnh dưới đây, có lẽ hầu hết nó sẽ làm việc cho bạn:

rsync -ravz /source/backup /destination 
Các vấn đề liên quan