Linux

如何在單個命令或腳本中關閉多台 linux 機器?

  • October 24, 2017

我有 10 多台 Linux 機器。如何使用單個腳本關閉所有機器?

所有機器的密碼和使用者都是相同的。

有很多可能做到這一點。

一種選擇是在不提示輸入密碼的情況下使用 ssh 密鑰對而不是 ssh 密碼。然後,您可以這樣做:

#!/bin/bash

for server; do ssh $server 'halt; exit'; done

用法:

./script.bash server1 server2 1.2.3.4

或者你可以使用更好的方法,比如ansiblepssh

嘗試使用ansible。

安裝ansible:

apt-get install ansible

將您的主機添加到主機文件:

vim /etc/ansible/hosts
server1
server2
server3

生成 ssh 密鑰並將其添加到遠端伺服器上:

ssh-keygen
cat /etc/ansible/hosts | xargs -i ssh-copy-id {}

在伺服器上執行關機:

ansible all -m shell -a "shutdown -h now"

您可以在關機前後通過命令檢查主機可用性:

ansible all -m ping

來源 1 , 來源 2

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