Linux
使用 scp 將文件複製到不同的伺服器
我幾乎每天都必須將文件複製到不同的伺服器。我通常做的是:
scp filename user@destinationhost:/destination/folder
我執行相同的命令一遍又一遍地更改目標主機,直到完成所有伺服器。將相同文件傳輸到這些不同伺服器的最佳(和最快)方法是什麼?
另一個缺點是我需要一遍又一遍地輸入密碼,但使用 rsa 不是一種選擇,因為可以有幾個人連接到源伺服器。
編輯 - 我在commandlinefu中發現循環可能會起到作用:
for h in host1 host2 host3 host4 ; { scp file user@$h:/destination_path/ ; }
有各種工具可以將文件 scp 到多個主機(同時連接),例如pssh和kanif。在密碼方面,我建議使用代理轉發。這允許您將密鑰保留在本地電腦上,但在從另一台主機啟動 SSH 連接時使用它。否則,來自pssh的命令
--askpass
選項會提示輸入用於每個主機的密碼。parallel-scp
如果您無法安裝工具來執行此操作,請設置代理轉發(通過在連接到您正在執行此操作的機器時添加
-A
選項ssh
)然後scp
在循環中執行,如下所示:for HOST in server1 server2 server3; do scp somefile $HOST:~/somedir/ done