我想要一個 rsync shell 腳本,使用者將輸入資料夾或檔案以同步到另一台伺服器。
即-./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 參數作為來源目錄/檔案提供給它,並將它們傳送到伺服器。