シェルスクリプトで別のコンピュータのIPを使用してコンピュータをシャットダウンする方法

シェルスクリプトで別のコンピュータのIPを使用してコンピュータをシャットダウンする方法

シェルスクリプト「sshコマンドを使用」を介して特定の時間にIPでサーバーの収集を終了するコマンド

答え1

このコマンドはコンピュータをシャットダウンします。

$ ssh user@remote_computer sudo poweroff

これら 2 つのコマンドは、パスワードを 2 回尋ねるメッセージを表示します。パスワードを要求しないようにするには、SSHキーをリモートシステムにコピーする必要があります。そして、root以外のユーザーがpoweroffコマンドにアクセスできるようにします。

サーバーリストを使用するには、次のように使用できます。

#!/bin/bash

$servers="server1 server2 server3"

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

特定の時間にこれを行うための最良のオプションは、cronでスクリプトをスケジュールすることです。

答え2

サーバーが多く、並列にシャットダウンしたいが同時にシャットダウンするサーバーの数を制限したい場合は、SSH暗号化のCPU消費量を制限し、サーバー数を制限します。発信ネットワーク接続の場合は、Makefile代わりにシェルスクリプトを使用できます。

次のように見えます。

SERVERS:=server1 server2 server3

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

%+shutdown:
        ssh user@$* sudo poweroff

その後、Internet Explorerを使用してこのコマンドを実行すると、複数のmake -j 20サーバーを並列にシャットダウンして、一度に最大20個に制限できます。

関連情報