for f in `ssh $SSHCRED "~/file-list.sh"`
do
rsync --progress --times --partial --append --rsh=ssh -r -h --remove-sent-files $SSHCRED:$f $OUTDIR
done
这就是我今天要做的事情。
我希望通过将输出ssh $SSHCRED "~/file-list.sh"
直接发送到 rsync 来实现这一点。这样应该更快,而且我可以轻松中止一个 rsync 操作。
但我发现至少有一个问题:远程脚本会生成一个包含绝对路径的文件列表。为了让 rsync 正常工作,我认为我需要在每个路径前添加 SSH 凭据,如下所示:
user@host:/path/to/file1
user@host:/path/to/file2
user@host:/path/to/file3
这可能吗?
答案1
生成文件列表并使用以下--files-from=FILE
选项将其交给 rsync:
rsync --your-options --files-from=filelist.txt user@host:/basedir targetdir
这应该是很多比对每个文件调用 rsync 更快。