Linux 与rsync的自动同步

Linux 与rsync的自动同步,linux,bash,shell,Linux,Bash,Shell,我正在开发一个脚本,它将使用rsync自动保持两个工作站上的文件夹同步。到目前为止,我已经把所有的事情都做好了,但我有一件小事情还没有弄明白。执行rsync命令后,它会提示输入另一个工作站的密码。然而,我还没有找到一种方法在终端提示时自动输入密码。我尝试使用expect命令,但没有成功,因为在我输入密码之前,命令没有执行 有解决办法吗 这是我的剧本。我有两个相同VM的实例,因此有相同的用户名 #!/bin/bash LOCAL="/home/rams/Documents/"

我正在开发一个脚本,它将使用rsync自动保持两个工作站上的文件夹同步。到目前为止,我已经把所有的事情都做好了,但我有一件小事情还没有弄明白。执行rsync命令后,它会提示输入另一个工作站的密码。然而,我还没有找到一种方法在终端提示时自动输入密码。我尝试使用expect命令,但没有成功,因为在我输入密码之前,命令没有执行

有解决办法吗

这是我的剧本。我有两个相同VM的实例,因此有相同的用户名

#!/bin/bash
LOCAL="/home/rams/Documents/"
RSYNC_OPTIONS="-avh --progress /home/rams/Documents/ rams@192.168.1.39:/home/rams/Downloads/"
PASSWORD="rams2020"

while true
do
    inotifywait -e modify $LOCAL
    rsync $RSYNC_OPTIONS
done
此处显示的解决方案:


TL;DR-使用SSH密钥生成密钥文件,该文件将在使用rsync命令时进行身份验证,并提示密码

欢迎来到SO!对于脚本化ssh登录,应该使用不带密码短语的密钥文件。由于这是一种安全风险,请确保密钥文件本身具有足够的安全性。关于如何做到这一点的说明,请查看此答案这就是它!谢谢你@ThomasHansen