Scp

如何將文件從多個伺服器複製到本地系統?

  • August 8, 2017

我們在 app00、app01 等伺服器上多次部署了一個應用程序。我需要將所有這些伺服器中的單個日誌文件複製到我的本地 Mac 上,以便我可以執行一些 grepping 和切割。

我使用 csshX 來查看這個文件,但我找不到 scp 的等價物。我基本上想要兩件事:

  1. 能夠連接到 n 個此類伺服器並複製文件
  2. 通過在日誌文件前加上伺服器主機名來避免本地命名衝突

我該怎麼做呢?

這對於一個小腳本來說是微不足道的。例如:

for server in app0 app1 app4 app5 appN; do
   scp user@$server:/path/to/log/file /local/path/to/"$server"_file
done

以上將依次從每個伺服器複製文件並命名SERVERNAME_file。因此,來自的文件app0將是app0_file等。您顯然可以將名稱更改為您想要的任何名稱。

使用GNU 並行

parallel -j0 scp {}:/remote_path file_from_{} ::: host1 host2 host3 # and so on

與使用 a 的解決方案不同for,這將並行執行所有下載

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