rsync nie kopiuje plików

11

Próbuję zsynchronizować duży katalog plików z mojego serwera z lokalną skrzynką. (Oba działają w systemie Ubuntu.) Mam polecenie, które wygląda, jakby działało , ale niektóre pliki nie są kopiowane:

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

Jak widać plik convert_matrix.htmlnie został skopiowany.

  1. Co robi polecenie, jeśli nie kopiuje plików?
  2. Jak mogę go faktycznie skopiować pliki?
Phrogz
źródło
3
Czy przypadkiem jest to folder lokalny /var/www/phrogz.net/public/public?
enzotib,
Zaraz, tak, jest! Opublikuj to jako odpowiedź i powiedz mi, jak zmienić polecenie, aby nie tworzyć publicjako podfolder, a masz 25 powtórzeń :)
Phrogz
1
Usuń ostatni „public” ze skryptu, aby stał się: rsync -rztpl --stats --rsh=/usr/bin/ssh 69.46.18.236:/var/www/phrogz.net/public /var/www/phrogz.net- powinien to zrobić.
Cesium,

Odpowiedzi:

18

Możesz uprościć swoje polecenie do

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

lub alternatywnie

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

Jak widać, rsyncinaczej interpretuje źródło ze spływem końcowym lub bez /.

Jest także -arównoważne z -rtplogD(w odniesieniu do wiersza poleceń, -adodaje również -o, zachowaj właściciela -g, zachowaj grupę i -Dzachowaj urządzenia i pliki specjalne).

Wreszcie --rshopcja jest zbędna, gdy źródło lub miejsce docelowe ma formę host:/path, z jednym :.

enzotib
źródło