如何仅将特定文件列表同步到另一台服务器上的同一位置

如何仅将特定文件列表同步到另一台服务器上的同一位置

我有一个文件列表:/location/file.txt

文件内容:

/location1/file2.abc
/location2/location3/file1.abc
/location4/location5/fileX.cde

我想将文件复制到另一台服务器,如下所示:

cat /location/file.txt | xargs -i scp {} user@server:/location

但在上面的示例中,列表中的所有文件都复制到特定位置,而我想将它们复制到相同的位置(准确路径如 txt 文件 /location1/、/location2/location3/ 等)

我该怎么做?我也可以使用 rsync,但我只想输入密码(到远程服务器)一次。

答案1

rsync -av --files-from=/location/file.txt / user@server:/location/

这会将本地文件复制/location1/file2.abc/location//location1/file2.abcetc。

由于只会rsync调用ssh一次,因此您只需输入密码一次。不过,您可能想使用 ssh 密钥进行调查。

相关内容