rsync на самом деле не копирует файлы

11

Я пытаюсь синхронизировать большой каталог файлов с моего сервера на локальный ящик. (Оба работают под управлением Ubuntu.) У меня есть команда, которая выглядит так, как будто она работает, но некоторые файлы не копируются:

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

Как видите, файл convert_matrix.htmlне был скопирован.

  1. Что делает команда, если не копирует файлы?
  2. Как я могу получить это на самом деле копировать файлы?
Phrogz
источник
3
Это случайно присутствует локальная папка /var/www/phrogz.net/public/public?
энзотиб
Вау, да, есть! Опубликуйте это как ответ и скажите, как изменить команду, чтобы она не создавалась publicкак подпапка, и вы получите 25 повторений :)
Phrogz
1
Удалите окончательную «публикацию» из вашего скрипта, чтобы она стала: rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net- должна это делать.
Цезий

Ответы:

18

Вы могли бы упростить вашу команду

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

или в качестве альтернативы

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

Как видите, по- rsyncразному интерпретирует источник с трейлингом или без него /.

Кроме того, -aэквивалентно -rtplogD, (что касается вашей командной строки, -aтакже добавляет -o, сохранить владельца -g, сохранить группу и -Dсохранить устройства и специальные файлы).

Наконец, --rshопция избыточна, когда источник или место назначения находятся в форме host:/path, с одним :.

enzotib
источник