10

Linux (Ubuntu) マシンにログインせずに、リモートでシャットダウンして再起動する必要があります(それ以外の場合は、単純なコマンドで作業できます)。マシンは単なる安価な PC であるため、特別な電源管理ハードウェアはインストールされていません (ただし、wake-on-lan は可能です)。これらのボックスにインストールできる、再起動/シャットダウンのリモート要求をリッスンし、それに応じて動作する「電源管理サーバー」ソフトウェアはありますか? もちろん、リクエストに応答するために何らかの認証 (パスワード) が必要になると便利です。

4

2 に答える 2

12

jørgensen が指摘したように、カーネルと直接対話する API であるSYSRQ ( http://en.wikipedia.org/wiki/Magic_SysRq_key ) を使用できます。

これらは非常にハードコアであり、ハードウェアに損害を与える可能性があることに注意してください。再起動には 1 つの UDP パケット転送の時間がかかります。ブーム。稼働中のディスクレス コンピューターでのみ使用します。

1. xt_SYSRQ (iptables モジュール、カーネル)

xtables-addons-common によって提供される iptables モジュールの 1 つである xt_SYSRQ があります

debian へのインストール

#!/bin/bash
apt-get install -qq xtables-addons-common iptables
echo -n "yolo" >/sys/module/xt_SYSRQ/parameters/password
iptables -A INPUT -p udp --dport 9 -j SYSRQ

ショットガンの再起動

#!/bin/bash
sysrq_key="sub"  # the SysRq key(s), Sync, Unmount, reBoot
password="yolo"
seqno="$(date +%s)"
salt="$(dd bs=12 count=1 if=/dev/urandom 2>/dev/null | openssl enc -base64)"
ipaddr="$1"
req="$sysrq_key,$seqno,$salt"
req="$req,$(echo -n "$req,$ipaddr,$password" | sha1sum | cut -c1-40)"
echo "$req" | socat stdin udp-sendto:$ipaddr:9

2. sysrqd (tcp 4094 リッスン デーモン、ユーザーランド)

この解決策は、ブロックされたコンピューターが TCP 接続を処理できる場合にのみ機能します。

debian へのインストール

#!/bin/bash
apt-get install -qq sysrqd
echo "yolo" > /etc/sysrqd.secret
service sysrqd restart

シャットダウン再起動

https://gist.github.com/qolund/1470beaa1a63e034025dというスクリプトを作成しましたが、ポート 4094 での TCP 接続にすぎません。パスワードとコマンドを送信する必要があります。

# telnet 172.16.42.180 4094
Trying 172.16.42.180...
Connected to 172.16.42.180.
Escape character is '^]'.
sysrqd password: nope
Go away!
Connection closed by foreign host.
# telnet 172.16.42.180 4094
Trying 172.16.42.180...
Connected to 172.16.42.180.
Escape character is '^]'.
sysrqd password: yolo
sysrq> sub
[..]

'b' 再起動コマンドが速すぎるため、接続が適切に閉じられていません。コンピューターは既に再起動しています。

于 2015-05-19T14:53:24.267 に答える
4

いくつかのオプション:

このツールは、正確にはマシンをシャットダウンするわけではありません (ただし、シャットダウンは可能です)。多数のマシンを管理するための構成管理フレームワークであり、構成の変更、パッケージのインストールと更新を処理し、必要なすべてのコマンドを 1 台のマシンで実行できます。 、一連のマシン、またはネットワーク全体で。

于 2011-12-17T06:19:52.493 に答える