Ssh

scp 遠端文件並附加到本地文件

  • June 1, 2021

我有多個文件要從遠端伺服器中提取。為了進一步處理本地伺服器中的文件,我需要將它們合併(連接)到單個文件中,但這不能在遠端文件中完成。

我不確定scp內部是如何工作的,但為了獲得最佳性能,我認為與其將這些文件寫入本地目錄然後合併,我覺得我應該即時合併它們然後寫入單個文件。您能否讓我知道是否可以在scp從遠端文件到本地文件期間即時合併(附加)文件?

如果沒有更好的主意?

直接使用 SSH 而不是 scp 並執行cat. 你會在哪裡做:

scp remote:{file1,file2...} local-dir

而是這樣做:

ssh remote cat file1 file2 ... > locale-file

這很愚蠢,但似乎您實際上可以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 測試)

引用自:https://unix.stackexchange.com/questions/411043