rsync không thực sự sao chép tập tin


11

Tôi đang cố gắng đồng bộ hóa một thư mục lớn các tệp từ máy chủ của mình sang hộp cục bộ. (Cả hai đều đang chạy Ubuntu.) Tôi có một lệnh trông giống như nó hoạt động, nhưng một số tệp nhất định không được sao chép:

phrogz@planar:~$ cat ./sync-phrogz-public 
rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net/public

phrogz@planar:~$ ./sync-phrogz-public 
Number of files: 10320
Number of files transferred: 0
Total file size: 4221864770 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 197778
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 388
Total bytes received: 199213

sent 388 bytes  received 199213 bytes  79840.40 bytes/sec
total size is 4221864770  speedup is 21151.52

phrogz@planar:~$ la /var/www/phrogz.net/public/svg/convert*
-rw-r----- 1 phrogz www-admin 6404 2011-02-26 21:49 /var/www/phrogz.net/public/svg/convert_path_to_polygon.xhtml

phrogz@planar:~$ ssh 69.46.18.236 'ls -Fla /var/www/phrogz.net/public/svg/convert*'
-rw-r--r-- 1 phrogz phrogz 1951 2011-12-04 09:07 /var/www/phrogz.net/public/svg/convert_matrix.html
-rw-r--r-- 1 phrogz phrogz 6404 2011-02-26 21:49 /var/www/phrogz.net/public/svg/convert_path_to_polygon.xhtml

Như bạn có thể thấy, tập tin convert_matrix.htmlkhông được sao chép.

  1. Lệnh đang làm gì, nếu không thực sự sao chép tập tin?
  2. Làm thế nào để tôi có được nó để thực sự sao chép các tập tin?

3
Đó là tình cờ hiện một thư mục địa phương /var/www/phrogz.net/public/public?
enzotib

Whoa, vâng, có! Đăng nó dưới dạng câu trả lời và cho tôi biết cách thay đổi lệnh để không tạo publicdưới dạng thư mục con và bạn đã có cho mình 25 đại diện :)
Phrogz

1
Xóa "công khai" cuối cùng khỏi tập lệnh của bạn, để nó trở thành: rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net- nên làm điều đó.
Caesium

Câu trả lời:


17

Bạn có thể đơn giản hóa lệnh của bạn để

rsync -az --stats 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net/

Hay cách khác

rsync -az --stats 69.46.18.236:/var/www/phrogz.net/public/ /var/www/phrogz.net/public

Như bạn thấy, rsyncdiễn giải một nguồn khác nhau có hoặc không có dấu /.

Ngoài ra, -atương đương với -rtplogD, (đối với dòng lệnh của bạn, -acũng thêm -o, giữ nguyên chủ sở hữu -g, bảo tồn nhóm và -D, bảo quản các thiết bị và các tệp đặc biệt).

Cuối cùng, --rshtùy chọn là dự phòng khi nguồn hoặc đích ở dạng host:/path, với một lần duy nhất :.

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.