2012-12-21 8 views
7

Come posso vedere rsync non è possibile sincronizzare il file se alcune directory nel percorso del file non esistono. Perché non crea queste directory con il comando mkdir -p? Forse ha un'opzione per questo? L'opzione -r non funziona in questo caso.Perché rsync utilizza mkdir senza l'opzione p

risposta

7

Qualcuno ha chiesto una domanda simile qui:

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

Non sembra come rsync è in grado di farlo. Dovresti scrivere uno script wrapper che faccia un mkdir -p nella directory di destinazione prima di eseguire rsync. Se la directory di destinazione si trova su un server diverso, è possibile eseguire il comando mkdir -p in uno script tramite ssh.

2

ho incontrato lo stesso problema come te, se la directory di destinazione remota è "/root/test" e voglio usare rsync per replicare i file nella directory remota "/root/test/aaa/bbb", poi "failed: No such file or directory (2)" sarà verbose fuori. La soluzione migliore è, dare il comando "ssh <username>@<remoteHostIP> mkdir -p <absolute_path>" per creare ricorsivamente le sottodirectory sull'host remoto. Quindi utilizzare il comando rsync avrà esito positivo.

+0

Alla fine faccio lo stesso. Sembra che non ci sia un modo conveniente per persuadere rsync a creare directory in modo ricorsivo – z3ple