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 [email protected]:/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 [email protected]:/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

chrisan
quelle

Antworten:

64
rsync -v -e ssh [email protected]:/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/  [email protected]:/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.
Zoredache
quelle
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.

Bryan
quelle