Command-Line
如何通過 FTP 並行上傳目錄?
我需要通過 FTP 上傳一個包含相當複雜的樹(很多子目錄等)的目錄。我無法壓縮這個目錄,因為除了 FTP 之外我沒有任何訪問目的地的權限——例如沒有 tar。由於距離很遠(美國 => 澳大利亞),因此延遲非常高。
遵循如何在 Unix 中使用 mput 將多個文件夾 FTP 到另一台伺服器中的建議?,我目前正在使用
ncftp
執行傳輸mput -r
。不幸的是,這似乎一次傳輸一個文件,在通信成本上浪費了大量可用頻寬。有什麼辦法可以並行化這個過程,即同時從這個目錄上傳多個文件?當然,我可以手動拆分它並
mput -r
在每個塊上執行,但這是一個乏味的過程。CLI 方法是首選,因為客戶端機器實際上是通過 SSH 訪問的無頭伺服器。
lftp 將使用命令來執行此操作
mirror -R -P 20 localpath
- 鏡像在位置之間同步,並且 -R 使用遠端伺服器作為目標,而 P 一次執行 20 次並行傳輸。如中所述
man lftp
:mirror [OPTS] [source [target]] Mirror specified source directory to local target directory. If target directory ends with a slash, the source base name is appended to target directory name. Source and/or target can be URLs pointing to directo‐ ries. -R, --reverse reverse mirror (put files) -P, --parallel[=N] download N files in parallel