我想要一个 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 参数作为源目录/文件提供给它,并将它们发送到服务器。