【问题标题】:Using multiple `rsync` without waiting completion使用多个 `rsync` 无需等待完成
【发布时间】:2022-11-26 22:37:54
【问题描述】:

我在下面有这段代码,它循环 xxx 变量中的所有字符,稍后它执行 rsync 以仅传输以该特定字符开头的文件。如果我的xxx 变量有 5 个字符,它会调用 rsync 5 次并且工作正常。

xxx="ABCDE"

for (( i=0; i<${#xxx}; i++ )); do

    rsync --include="[\${xxx:$i:1}]*" /source /remote-destination
    
done

但是有一个问题:当它执行第一个rsync时,它询问我删除服务器的密码,然后它开始传输文件。只有在它完成所有文件的传输后,它才会第二次执行循环,再次询问我远程服务器的密码(没问题,我可以负担得起每次都输入密码)然后我需要等待传输发生所以它可以继续。

我希望循环继续,无需等待...我尝试在命令行末尾使用 &amp; char 将其发送到后台,但是如果我这样做,我无法输入远程服务器的密码!

知道我该如何解决这个问题吗?我真的很想每次都自己输入密码,这不是问题。问题是,或者循环等待每个rsync 完成,或者如果我使用&amp;,它会将密码提示发送到后台。

【问题讨论】:

    标签: linux bash centos rsync scp


    【解决方案1】:

    查看rsynconline man page,它有一个意见叫做--password-file

    以下是部分原文:

    您可以通过将环境变量 RSYNC_PASSWORD 设置为您要使用的密码或使用 --password-file 选项来避免密码提示。这在编写 rsync 脚本时可能很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 2015-02-25
      • 2016-10-16
      • 1970-01-01
      相关资源
      最近更新 更多