Ich hätte gerne ein Rsync-Shell-Skript, in das der Benutzer den Ordner oder die Datei eingibt, um sie mit einem anderen Server zu synchronisieren.
dh - ./deploy /html/
oder./deploy /html/kuky.txt
Das Skript wartet auf die Eingabe und führt dann das Rsync-Skript aus. Bitte helfen Sie.
Antwort1
Bitte schön:
echo "Enter file or folder path"
read target
if [ ! -e "$target" ]
then
echo $target does not exist
else
echo Transferring $target
rsync -avzr $target [email protected]:/home/user/target_directory
fi
Legen Sie dies in eine Datei namens sender.sh. Rufen Sie dann bash sender.sh von der Befehlszeile aus auf.
Ich schlage vor, dass Sie die Optionen des rsync-Befehls nachschlagen. Sie können das Verhalten erheblich verändern.
Antwort2
Für die Antwort von Can muss ein Benutzer das Skript ausführen und dann den Pfad manuell eingeben. Im Folgenden können Sie die Syntax verwenden, die Sie in Ihrem OP angegeben haben:
#!/bin/bash
echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"
Dieses Skript dauertalleCLI-Argumente werden ihm als Quellverzeichnisse/-dateien übergeben und an den Server gesendet.