入力付き rsync シェル スクリプト

入力付き rsync シェル スクリプト

ユーザーがフォルダーまたはファイルを入力して別のサーバーに同期する rsync シェル スクリプトを用意したいと思います。

つまり -./deploy /html/または./deploy /html/kuky.txt

スクリプトは入力を待機し、rsync スクリプトを実行します。助けてください。

答え1

どうぞ:

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

これを sender.sh というファイルに保存します。次に、コマンド ラインから bash sender.sh を呼び出します。

rsync コマンドのオプションを調べることをお勧めします。オプションによって動作が大きく変わる可能性があります。

答え2

Can の回答では、ユーザーがスクリプトを実行してからパスを手動で入力する必要がありますが、次のようにすると、OP で指定した構文を使用できるようになります。

#!/bin/bash

echo -n "Transferring ${*} to server... "
rsync -az ${*} <user>@<server>:/path/to/target/ 1> /dev/null
echo "Done!"

このスクリプトは全てCLI 引数をソース ディレクトリ/ファイルとして指定し、サーバーに送信します。

関連情報