rsync não está realmente copiando arquivos

11

Estou tentando sincronizar um grande diretório de arquivos do meu servidor para uma caixa local. (Ambos estão executando o Ubuntu.) Eu tenho um comando que parece funcionar, mas certos arquivos não são copiados:

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

Como você pode ver, o arquivo convert_matrix.htmlnão foi copiado.

  1. O que o comando está fazendo, se não está realmente copiando arquivos?
  2. Como faço para copiar os arquivos?
Phrogz
fonte
3
É por acaso apresentar uma pasta local /var/www/phrogz.net/public/public?
enzotib 4/12/11
Whoa, sim, existe! Post que como uma resposta, e dizer-me como alterar o comando para não criar publiccomo uma subpasta, e você tem-se 25 rep :)
Phrogz
1
Remova o "público" final do seu script, para que ele se torne: rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net- faça isso.
Cesium

Respostas:

18

Você pode simplificar seu comando para

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

ou alternativamente

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

Como você vê, rsyncinterpreta de maneira diferente uma fonte com ou sem um final /.

Além disso, -aé equivalente a -rtplogD(com relação à sua linha de comando, -atambém adiciona -o, preserva o proprietário -g, preserva o grupo e -Dpreserva os dispositivos e arquivos especiais).

Por fim, a --rshopção é redundante quando a origem ou o destino está no formulário host:/path, com um único :.

enzotib
fonte