Linux
使用終端上的某些命令從遠端伺服器並行複製文件?
我正在使用以下 scp 命令將文件從遠端伺服器複製到本地伺服器。我只需在終端上輸入以下命令,它就會開始複製。
scp -r user@machineA:/data/process/* /data/process/
現在,由於在遠端伺服器上我們有大約 100 個文件,每個文件大小約為 11 GB,因此上述命令將一次複製一個文件。有什麼方法可以讓我一次複製 5 個文件,同時使用一些可以直接在終端上執行的命令?
我也安裝了 GNU 並行,但不知道如何在這裡使用它可以幫助我通過直接在終端上執行來並行複製文件?或者,如果有任何其他方式,那麼我也對此持開放態度。
這是要在遠端伺服器上執行的命令,涉及
find
andparallel
:find /data/process/ -type f | parallel scp {} user@machineB:/data/process/
編輯:
請參閱有關如何控制要並行執行的作業數量的文件。
並發作業的數量用
--jobs
或等價物給出-j
。預設情況下
--jobs
與 CPU 核心數相同。
--jobs 0
將並行執行盡可能多的作業。編輯:
這應該是另一個問題,並且已經被問及回答:如何在遠端機器上執行命令?
ssh user@machineA 'find /data/process/ -type f | parallel scp {} user@machineB:/data/process/'