使用rsync自动同步



我正在开发一个脚本,该脚本将使用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

此处显示的解决方案:

https://stackoverflow.com/a/3299970/8860865

TL;DR-使用SSH密钥生成一个密钥文件,该文件将在使用rsync命令并提示密码时进行身份验证。https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

最新更新