rsync-Shell-Skript mit Eingabe

rsync-Shell-Skript mit Eingabe

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.

verwandte Informationen