0

私は夜間に大量のデータをダウンロードしており、PC は UPS を介して動作しています。停電を検出して、PC を自動的にシャットダウンするように命令する方法はありますか? 夜勤でPCの電源を切る人がいないので、どなたか教えていただけると助かります。出来ますか?

ありがとう。

4

2 に答える 2

4

重要:以下に示すスクリプトは、ネットワークがダウンするたびにシステムをシャットダウンするため、自己責任で使用してください。

ICMP エコー要求に応答し、UPS によって電力が供給されていないネットワーク ホスト (ルーターなど) がある場合 (または、少なくともネットワーク機器が UPS によって電力を供給されていない場合)、必要なことを行うにはあまりエレガントな方法ではありません。数秒ごとにそのホストに ping を実行し、ダウンしている場合は PC をシャットダウンします。

#!/bin/bash
while :
do
  ping -c 1 -w 5 192.168.0.1 &> /dev/null
  if [  $? -gt 0  ]; then
    shutdown -hP now
    break
  fi
  sleep 10s
done

192.168.0.1 を、ping を送信するネットワーク ホストの IP アドレスに変更する必要があります。

また、スクリプトを実行可能にしchmod +x <script_name>、それを呼び出す必要があります (バックグラウンドで実行するには、/etc/rc.locala を追加することを忘れないでください)。これにより、起動時にスクリプトが root として実行されます。&

完全を期すために、PC が Windows XP を実行している場合、次のバッチ ファイルを使用できます。

:loop
ping -n 1 -w 5000 192.168.0.1
if not %ERRORLEVEL% == 0 (
    shutdown -s
    goto end
)
sleep 10
goto loop
:end

Windows バッチ ファイルsleepには、Windows Server 2003 リソース キット ツール パッケージの一部としてインストールできるコマンドが必要であることに注意してください ( Microsoft のサイトから無料でダウンロードできます) 。

于 2013-11-16T13:54:49.967 に答える
0

APC で、データ ポートがある場合は、PowerChute を使用できます。これは Java ベースの GUI (これがサーバーの場合は問題になる可能性があります) であり、まさにあなたが要求していることを実行します。

于 2012-11-28T09:40:14.457 に答える