rsync ne copie pas réellement les fichiers

11

J'essaie de synchroniser un grand répertoire de fichiers de mon serveur vers une boîte locale. (Les deux exécutent Ubuntu.) J'ai une commande qui semble fonctionner, mais certains fichiers ne sont pas copiés:

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

Comme vous pouvez le voir, le fichier convert_matrix.htmln'a pas été copié.

  1. Que fait la commande, sinon la copie de fichiers?
  2. Comment puis-je faire pour copier réellement les fichiers?
Phrogz
la source
3
Est-ce par hasard présenter un dossier local /var/www/phrogz.net/public/public?
enzotib
Whoa, oui, il y en a! Postez-le comme réponse, et dites-moi comment changer la commande pour ne pas créer en publictant que sous-dossier, et vous avez 25 rep :)
Phrogz
1
Supprimez le "public" final de votre script pour qu'il devienne: rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net- devrait le faire.
Césium

Réponses:

18

Vous pouvez simplifier votre commande pour

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

Ou bien

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

Comme vous le voyez, rsyncinterprète différemment une source avec ou sans fin /.

Également, -aest équivalent à -rtplogD, (en ce qui concerne votre ligne de commande, -aajoute également -o, conserve le propriétaire,, -gconserve le groupe et -D, préserve les périphériques et les fichiers spéciaux).

Enfin, l' --rshoption est redondante lorsque la source ou la destination est dans le formulaire host:/path, avec un seul :.

enzotib
la source