使用 scp 传输一个 .txt 文件列表的文件

Mor*_*ney 9 linux ssh scp

我在服务器 A 上有 160 万个文件,其中只有大约 2 万个文件需要到达服务器 B。目标服务器 B 位于 GoDaddy 共享主机上,因此我只能使用 scp 一次传输多个文件。

我想从 SQL 查询中生成那些 20k+ 个文件的 .txt 文件,然后将该列表提供给 scp。是否有任何选项可以这样做?

cat /proc/version 给我 Linux version 2.6.32-531.23.3.lve1.2.65.el6.x86_64 (mockbuild@koji.cloudlinux.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Tue Aug 19 10:37:27 EDT 2014

小智 15

如果您已经创建了文本文件,请执行以下操作

cat /location/file.txt | xargs -i scp {} user@server:/location
Run Code Online (Sandbox Code Playgroud)

这将逐行输出 file.txt 并每行运行 scp 命令;我希望这有帮助。


qwr*_*qwr 5

考虑rsync作为替代方案,它具有内置的 ssh 支持并支持使用--files-from.

例子:

rsync -av --progress --partial-dir=/tmp --files-from=file_list.txt . me@example.com:/dest
Run Code Online (Sandbox Code Playgroud)

与 scp 相比的优势:

也可以看看: