Ssh

通過遠端腳本生成的 ssh 上的 rsync 文件列表

  • December 2, 2011
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

這可能嗎?

生成文件列表並將它們交給 rsync--files-from=FILE選項:

rsync --your-options --files-from=filelist.txt user@host:/basedir targetdir

這應該比為每個文件呼叫 rsync 快得多**。**

引用自:https://serverfault.com/questions/336990