2012-12-21 4 views
7

Wie ich sehen kann rsync kann Datei nicht synchronisieren, wenn einige der Verzeichnisse im Dateipfad nicht existiert. Warum erstellt er diese Verzeichnisse nicht mit dem Befehl mkdir -p? Vielleicht hat es eine Option dafür? -r Option funktioniert in diesem Fall nicht.Warum rsync verwendet Mkdir ohne p-Option

Antwort

7

Jemand fragte eine ähnliche Frage hier:

rsync: how can I configure it to create target directory on server?

Es ist nicht wie rsync der Lage sieht, das zu tun. Sie müssten ein Wrapper-Skript schreiben, das eine mkdir -p auf dem Zielverzeichnis vor der Ausführung rsync ausführt. Wenn sich Ihr Zielverzeichnis auf einem anderen Server befindet, können Sie möglicherweise den Befehl mkdir -p in einem Skript über ssh ausführen.

2

Ich habe das gleiche Problem gleiche wie Sie auftreten, wenn das Verzeichnis der entfernten Ziel ist „/root/test“ und ich möchte rsync verwenden, um meine Dateien in das Remote-Verzeichnis „/root/test/aaa/bbb“ zu replizieren, dann „failed: No such file or directory (2)“ wird Ausführlich werden. Die beste Lösung ist, geben Sie den Befehl "ssh <username>@<remoteHostIP> mkdir -p <absolute_path>" für die rekursive Erstellung der Unterverzeichnisse auf dem Remote-Host. Dann verwenden Sie rsync Befehl wird Erfolg.

+0

Am Ende mache ich das gleiche. Sieht so aus, als ob es keine bequeme Möglichkeit gibt, rsync create Verzeichnisse rekursiv zu überreden – z3ple