如何通过单个命令或脚本关闭多台 Linux 机器?

如何通过单个命令或脚本关闭多台 Linux 机器?

我有10多台Linux机器。如何使用单个脚本关闭所有机器?

所有机器的密码和用户都是相同的。

答案1

尝试使用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

答案2

有很多可能可以做到这一点。

一种选择是使用 ssh 密钥对而不是密码进行 ssh,而不提示输入密码。然后,你可以这样做:

#!/bin/bash

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

用法:

./script.bash server1 server2 1.2.3.4

或者您可以使用更好的方法,使用类似的工具或者噗噗

答案3

为用户“shutdown”设置 ssh 密钥。如果您查看 /etc/passwd,就会发现该用户的默认 shell 是 /sbin/shutdown。所以只要登录就会执行shutdown命令。

答案4

我用布料(http://www.fabfile.org/)。您可以编写一个 python 脚本,然后可以在远程系统上运行它。它速度很快,并且非常适合我进行远程系统管理。

相关内容