linux 使用多重'rsync'而不等待完成

xt0899hw  于 2022-11-28  发布在  Linux
关注(0)|答案(2)|浏览(141)

下面的代码在不同的目录中循环rsync几次:

for (( i=0; i<6; i++ )); do

    rsync /source-${i} /remote-destination
    
done

然而还有一个问题:当它执行第一个rsync时,它会询问我remove服务器的密码,然后开始传输文件。只有在它完成所有文件的传输后,它才会第二次执行循环,再次询问我远程服务器的密码(没问题,我可以每次都输入密码),然后我需要等待传输发生,这样它才能继续。
我希望循环继续,而不等待...我尝试使用命令行末尾的&字符将其发送到后台,但如果我这样做,我无法键入远程服务器的密码!
有什么办法可以解决这个问题吗?我真的想每次都自己输入密码,这不是问题。问题是循环等待每个rsync完成,或者如果我使用&,它会将密码提示发送到后台。

ki0zmccv

ki0zmccv1#

看看rsynconline man page,它有一个名为--password-file的意见。
以下是一些原文:
您可以通过设置环境变量RSYNC_PASSWORD为您想要使用的密码或使用--password-file选项来避免密码提示。这在编写rsync脚本时可能很有用。

gcmastyq

gcmastyq2#

这实际上是一个ssh问题。你必须创建ssh密钥并将它们复制到远程主机--参见here以获得一些好的指导。
直到你能做到:

$ ssh remotehost hostname
remotehost

rsync将需要密码。

相关问题