如何在 shell 脚本中使用另一台计算机的 IP 来关闭它们

如何在 shell 脚本中使用另一台计算机的 IP 来关闭它们

命令通过 shell 脚本“使用 ssh 命令”在特定时间按 IP 关闭服务器集合

答案1

该命令将使您的计算机关闭。

$ ssh user@remote_computer sudo poweroff

您应该注意到,这两个命令将提示您输入密码两次。为了使其不要求您输入密码,您应该将 ssh 密钥复制到远程计算机。并使非 root 用户可以访问 poweroff 命令。

要使用服务器列表,您可以使用如下内容:

#!/bin/bash

$servers="server1 server2 server3"

for server in $servers
do
    ssh user@$server sudo poweroff
done

在特定时间执行此操作的最佳选择是在 cron 中安排脚本。

答案2

如果你有很多服务器,并且你想并行关闭它们,但同时你想限制同时关闭的服务器数量,以限制 ssh 加密的 CPU 消耗和限制数量对于传出网络连接,您可以使用Makefileshell 脚本来代替。

它可能看起来像这样:

SERVERS:=server1 server2 server3

.PHONY: shutdown
shutdown: $(addsuffix +shutdown,$(SERVERS))

%+shutdown:
        ssh user@$* sudo poweroff

然后,您可以使用 ie 运行此命令make -j 20来并行关闭多个服务器,将其限制为一次最多 20 个。

相关内容