Perché rsync sta saltando la directory principale?


47

Sto provando a utilizzare rync localmente (su una macchina Windows) su un server remoto (la mia casella osx) al fine di testare uno script di build di distribuzione remota. Ho già fatto rsync prima tra 2 server Linux, ma ora ho problemi. Ecco l'output:

$ rsync -v -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

skipping directory /Library/WebServer/sites/staging/app1/.

sent 8 bytes  received 13 bytes  3.82 bytes/sec
total size is 0  speedup is 0.00

$ 

o

$ rsync -avz -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

receiving file list ... done
./

sent 26 bytes  received 68 bytes  17.09 bytes/sec
total size is 0  speedup is 0.00


$ 

la directory app1 remota è vuota mentre la directory di esportazione locale ha 4 sottodirectory e quindi un mucchio di file in ognuna di queste

Risposte:


64
rsync -v -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

Non hai dato alcuna opzione per metterlo in modalità ricorsiva come -ro -a.

la directory app1 remota è vuota mentre la directory di esportazione locale ha 4 sottodirectory e quindi un mucchio di file in ognuna di queste

Hai le opzioni al contrario qui? Il comando dovrebbe essere rsync [source] [DESTINATION]. Se la directory app1 è vuota e stai provando a copiare una directory vuota, non hai intenzione di fare nulla di utile.

Forse hai bisogno di qualcosa del genere invece?

rsync -avz ./export/  myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ 

Anche:

  • Dovresti quasi sempre includere una barra finale nelle directory con rsync.
  • Quasi ogni versione di rsync rilasciata negli ultimi 5-10 anni per impostazione predefinita, l'utilizzo di ssh ha il trasporto remoto. Probabilmente non è necessario specificare il -e ssh.

2
Wow .. è abbastanza imbarazzante. Sì, ho confuso la fonte e la destinazione ...
Chrisan,

1
+1 per "Dovresti quasi sempre includere una barra finale nelle directory con rsync."
Walrus the Cat,

Su Mac sembra usare il flag -r, ma su Linux uso sempre -R ("R maiuscola")
Adam F

@Zoredache Perché è quasi?
Nikhil,

3

Prova di abilitare la capacità integrata di rsync di generare un file di registro, aggiungendo la seguente opzione al tuo comando.

--log-file=/path/to/log.file

Puoi anche aumentare la verbosità aggiungendo -vun'opzione aggiuntiva , ad esempio -avvz, secondo la pagina man, "Due opzioni -v ti daranno informazioni su quali file vengono saltati e leggermente più informazioni alla fine."

Se queste informazioni che restituiscono non aiutano a identificare il problema, modifica la domanda e aggiungi l'output aggiuntivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.