我有一份包含 17 台服务器的列表,格式如下
172.16.1.4 #servername-A
172.16.2.75 #servername-B
172.16.5.53 #servername-C
172.16.5.61 #servername-D
我想要一个脚本,可以通过 ssh/login 访问每个服务器并将它们关闭,这很容易,但问题是它们需要按照上面显示的特定顺序(列表下方)关闭,其中每个前一个服务器都必须在下一次关闭开始之前完全关闭。
答案1
也许:
while read ip rest_of_line; do
ssh user@$ip sudo poweroff
done < server.file
ssh 命令将在远程服务器上的 ssh 守护程序关闭时返回。这不是机器关闭时返回的。您可能希望在命令sleep
后添加一个命令ssh
。
您的用户应配置为sudo poweroff
无需提供密码即可执行操作。请参阅visudo
手册页。