Betta Asked: 2017-12-16 03:51:33 +0800 CST2017-12-16 03:51:33 +0800 CST 2017-12-16 03:51:33 +0800 CST scp 远程文件并附加到本地文件 772 我有多个文件要从远程服务器中提取。为了进一步处理本地服务器中的文件,我需要将它们合并(连接)到单个文件中,但这不能在远程文件中完成。 我不确定scp内部是如何工作的,但为了获得最佳性能,我认为与其将这些文件写入本地目录然后合并,我觉得我应该即时合并它们然后写入单个文件。您能否让我知道是否可以在scp从远程文件到本地文件期间即时合并(附加)文件? 如果没有更好的主意? ssh scp 3 个回答 Voted Best Answer muru 2017-12-16T04:04:33+08:002017-12-16T04:04:33+08:00 直接使用 SSH 而不是 scp 并运行cat. 你会在哪里做: scp remote:{file1,file2...} local-dir 而是这样做: ssh remote cat file1 file2 ... > locale-file ilkkachu 2017-12-16T05:17:27+08:002017-12-16T05:17:27+08:00 这很愚蠢,但似乎您实际上可以scp通过将远程文件复制到本地 fifo 并将它们从其中导出来执行此操作: $ mkfifo p $ while :; do cat p >> output ; done & $ scp somehost:test/\* p bar 100% 4 10.9KB/s 00:00 doo 100% 4 8.6KB/s 00:00 foo 100% 4 13.6KB/s 00:00 $ kill %1 # output contains the files concatenated (在 Debian 上使用 OpenSSH 7.4p1-10+deb9u2 测试) Praveen Kumar BS 2017-12-16T05:06:05+08:002017-12-16T05:06:05+08:00 以下步骤仅在本地服务器中执行 我测试了两个步骤都很好 第一步 ssh username@remoteserverip "cat file1 file2 file3 >> /remoteserverpath/Mergedfile" 第二步您正在将合并的文件从远程服务器复制到本地服务器您可以通过 rsync 或 scp 执行此操作 我更喜欢rsync rsync -avzh username@remoteserverip:/remoteserverpath/Mergedfile localserverpath_where_you_want_to_save
直接使用 SSH 而不是 scp 并运行
cat
. 你会在哪里做:而是这样做:
这很愚蠢,但似乎您实际上可以
scp
通过将远程文件复制到本地 fifo 并将它们从其中导出来执行此操作:(在 Debian 上使用 OpenSSH 7.4p1-10+deb9u2 测试)
以下步骤仅在本地服务器中执行
我测试了两个步骤都很好
第一步
第二步您正在将合并的文件从远程服务器复制到本地服务器您可以通过 rsync 或 scp 执行此操作
我更喜欢rsync