it-swarm.com.de

So erzwingen Sie, dass rsync einen Zielordner erstellt

Beispiel:

rsync /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln

Mein Hauptproblem ist, dass der Ordner/tmp/fol1 auf dem Remote-Computer nicht vorhanden ist.

Welche Argumente kann ich verwenden, um rsync zu zwingen, diesen Baum zu erstellen?

28
CrazySquirrel

Ich bin heute in dieselbe Ausgabe geraten und habe die Lösung hier gefunden.

Sie können entweder tun:

rsync -avR foo/bar/baz.c remote:/tmp/

oder:

rsync -avR somedir/./foo/bar/baz.c remote:/tmp/

/tmp/foo/bar/baz.c auf dem Remote-Rechner erstellen.

weitere Informationen finden Sie im Abschnitt --relative/-R von man rsync.

22

Ein Trick dabei ist, den --rsync-path-Parameter mit dem folgenden Wert zu verwenden:

--rsync-path="mkdir -p /tmp/fol1 && rsync"

Mit --rsync-path können Sie angeben, welches Programm zum Starten von rsync auf dem Remote-Computer verwendet wird und mit Hilfe einer Shell ausgeführt wird.

16
barracel

Sie können dies über Bash tun und einen SSH-Tunnel öffnen, um die Dateistruktur zu erstellen, die Sie erstellen müssen, und dann die Daten zu synchronisieren. Ändern sich diese temporären Ordner bei jeder Synchronisierung? ist es zB für jeden Tag der Woche? 

ssh [email protected]
mkdir -p tmp/fol1
rsync avz /tmp/fol1/fol2/fol3/foln [email protected]:/tmp/fol1/fol2/fol3/foln
fi
1
Paperghost