Warum überspringt rsync das Hauptverzeichnis?


47

Ich versuche, rync lokal (auf einem Windows-Computer) auf einem Remote-Server (meiner OSX-Box) zu verwenden, um ein Build-Skript für die Remote-Bereitstellung zu testen. Ich habe Rsync vor gut zwischen 2 Linux-Servern getan, aber ich habe jetzt Probleme. Hier ist die Ausgabe:

$ 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

$ 

oder

$ 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


$ 

Das Remote-App1-Verzeichnis ist leer, während das lokale Exportverzeichnis 4 Unterverzeichnisse und jeweils eine Reihe von Dateien enthält

Antworten:


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

Sie haben keine Optionen angegeben, um es in den rekursiven Modus wie -roder zu versetzen -a.

Das Remote-App1-Verzeichnis ist leer, während das lokale Exportverzeichnis 4 Unterverzeichnisse und jeweils eine Reihe von Dateien enthält

Haben Sie hier die Optionen rückwärts? Der Befehl sollte sein rsync [source] [DESTINATION]. Wenn das Verzeichnis app1 leer ist und Sie versuchen, ein leeres Verzeichnis zu kopieren, werden Sie nichts Nützliches tun.

Vielleicht brauchen Sie stattdessen so etwas?

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

Ebenfalls:

  • Sie sollten fast immer einen abschließenden Schrägstrich in Verzeichnissen mit rsync einfügen.
  • Fast jede Version von rsync, die in den letzten 5-10 Jahren veröffentlicht wurde, verwendet standardmäßig ssh für den Ferntransport. Sie müssen das wahrscheinlich nicht angeben -e ssh.

2
Wow .. das ist ziemlich peinlich. Ja, ich habe Quelle und Ziel verwechselt ...
Chrisan

1
+1 für "Sie sollten fast immer einen abschließenden Schrägstrich in Verzeichnissen mit rsync einfügen."
Walross the Cat

Auf dem Mac scheint es das -r Flag zu benutzen, aber unter Linux verwende ich immer -R ("capital R")
Adam F

@Zoredache Warum ist es fast?
Nikhil

3

Versuchen Sie, die in rsync integrierte Fähigkeit zur Ausgabe einer Protokolldatei zu aktivieren, indem Sie Ihrem Befehl die folgende Option hinzufügen.

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

Sie können die Ausführlichkeit auch erhöhen, indem Sie eine zusätzliche -vOption hinzufügen , z. B. -avvzlaut Manpage "Zwei -v-Optionen geben Ihnen Informationen darüber, welche Dateien übersprungen werden, und etwas mehr Informationen am Ende."

Wenn diese zurückgegebenen Informationen das Problem nicht identifizieren, bearbeiten Sie Ihre Frage und fügen Sie die zusätzliche Ausgabe hinzu.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.