如何透過 SSH 自動向多個伺服器執行類似命令?

如何透過 SSH 自動向多個伺服器執行類似命令?

我有 x 個伺服器,可以透過密碼透過 SSH 連線。如果我只需要連接 1,我將 ssh root@IP 位址。然後它會詢問我的密碼,經過身份驗證後,我可以在那裡執行命令。

如果我有 x 個相同的伺服器並且我希望在每台伺服器上執行相同的命令怎麼辦?我怎麼能用一個或兩個命令來做到這一點?

答案1

聽起來您想要一個設定工具,例如安西布爾,鹽堆,廚師或者木偶

Ansible 的工作方式與您想要的非常相似,您可以在本地運行它,然後透過 ssh 連接到遠端伺服器來運行命令(無需像上面列出的其他產品那樣在遠端伺服器上安裝代理)。例如,給定伺服器列表,/etc/ansible/hosts您可以運行ansible all -a "/bin/echo hello"以在所有伺服器上執行給定命令。完整指南這裡

但除此之外,您還可以開始製作有用命令的劇本,以便您將來在主機上重新運行它們,並努力實現基礎設施的自動化管理。

或者,您可以使用類似命令噗噗用於並行運行批次命令或使用同步窗格tmux 的功能是在多個主機上交互運行命令。

答案2

  1. 在多個主機上執行相同的命令

如果我有 x 個伺服器都相同並且我希望在每個伺服器上執行相同的 > 命令怎麼辦?我怎麼能用一個或兩個命令來做到這一點?

您可以執行一個腳本,該腳本會取得主機名稱作為參數,並對參數中的主機名稱執行相同的命令

  1. 透過 SSH 連接到多個伺服器

強烈建議您使用 ssh 金鑰對,並且 ssh 通訊將是無密碼的

這個答案

答案3

您可以使用MobaXtrem作為 ssh 用戶端,它具有 MultiExec 功能,可讓您對所有開啟的終端執行相同的命令。

相關內容