关闭文件中给出的服务器列表

ran*_*zer 4 ssh bash scripts

我有一个包含这种格式的 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 
Run Code Online (Sandbox Code Playgroud)

我想要一个脚本,它可以 ssh/登录到这些服务器中的每一个并关闭它们,这很容易,但问题是它们需要按照上面显示的特定顺序(在列表中)关闭,其中每个在下一次关闭开始之前,前一个必须完全关闭。

gle*_*man 8

也许:

while read ip rest_of_line; do
    ssh user@$ip sudo poweroff
done < server.file
Run Code Online (Sandbox Code Playgroud)

当远程服务器上的 ssh 守护进程关闭时,ssh 命令将返回。这不是机器断电时的情况。您可能希望在该sleep命令之后添加一个ssh命令。

您的用户应该配置为sudo poweroff无需提供密码。请参阅visudo 手册页。