ユーザーがフォルダーまたはファイルを入力して別のサーバーに同期する 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 引数をソース ディレクトリ/ファイルとして指定し、サーバーに送信します。