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
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.
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.
Am Ende mache ich das gleiche. Sieht so aus, als ob es keine bequeme Möglichkeit gibt, rsync create Verzeichnisse rekursiv zu überreden – z3ple