带输入的 rsync shell 脚本

带输入的 rsync shell 脚本

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

相关内容