GNU/Linux >> Linux の 問題 >  >> Linux

1 台のサーバー、冗長電源上の 2 台の APC UPS :シャットダウンをトリガーする方法は?

現在、2 つの UPS のうちの 1 つが停止すると、doshutdown イベントがトリガーされ、apccontrol を介してデフォルトのスクリプトを実行します . doshutdown スクリプトは、2 番目の UPS はイベント接続されていないため無視し、通常どおりシャットダウンを続行します。

doshutdown を実行するには イベントがある程度関連しているため、apcupsd の 2 つのインスタンスには、特別にカスタマイズされた構成ファイルが必要です。違いは、イベント スクリプトを実行するディレクトリにあります。

/etc/apcupsd/apcupsd.ups0.conf の最初のアップの主なプロパティ

SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events

ups1 については、/etc/apcupsd/apcupsd.ups1.conf

SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events

scriptdir デフォルトのスクリプトのコピーを取得する必要があります。
doshutdown をカスタマイズしたい このスクリプトは、マシンを直接シャットダウンするのではなく、他の UPS がまだオンになっているかどうか、またはシャットダウン モードにあるかどうかを確認する必要があります。

doshutdown の上部 スクリプト、次のようなものを追加できます

ups0 用

if [ ! -f /tmp/ups1.is.down ]
then
  touch /tmp/ups0.is.down
  exit 99
fi

ups1 用

if [ ! -f /tmp/ups0.is.down ]
then
  touch /tmp/ups1.is.down
  exit 99
fi

ステータス 99 には特別な意味があり、apccontrol に伝えます 進行中のアクションを停止します。 5 行は、他の UPS ダウン ファイルが作成されているかどうかを確認します。 いいえの場合 、ダウン中の ups に対して down-file が作成され、終了します。 はいの場合 は、他の UPS がダウンしていることを意味し、この UPS も同様にダウンしているため、スクリプトを続行してマシンをシャットダウンする必要があります。

ファイル /tmp/usp[01].is.down ups[01] が現在ダウンしているかどうかを示します。

重要:apcupsd の init.d 開始スクリプトは、以前のセッションで作成された場合、これらのファイルを削除する必要があります:

rm -f /tmp/usp[01].is.down

最後に、上記で作成したディレクトリ /etc/apcupsd/ups[01] に apcupsd へのアクセス権を付与する必要があります。 ユーザー (またはインスタンスを実行している関連ユーザー)

chown -R apcupsd /etc/apcupsd/ups[01]

詳細なドキュメントをご覧ください。

編集 /tmp/ups[01].is.down を修正 名前、.is ありませんでした。


ナットを見てください。これをうまく処理します。各 UPS からの電源の数と、必要な電源の数を定義します。 UPS に十分な電源がない限り、シャットダウンはトリガーされません。


Linux
  1. mysqld_multi を使用して 1 つのシステムで複数の MySQL サーバーを構成する方法

  2. 2 つの ar 静的ライブラリを 1 つにマージする方法は?

  3. ネットワーク ケーブルのプラグが抜かれている、またはサーバーがダウンしている状態をシミュレートするにはどうすればよいですか?

  1. MySQL サーバーを複数の IP アドレスにバインドする方法は?

  2. 主電源が回復したときに UPS がサーバーをシャットダウンした後、サーバーをウェイクアップする方法は?

  3. Ubuntu ですべての電源管理を無効にする方法 (サーバー ネットブックの場合)?

  1. Nginxを使用して1つのIPに複数のSSLを設定する方法

  2. このSu-c「…」コマンドはどのように1つではなく2つのコマンドを渡すように見えますか?

  3. Dh_installinitを使用して1つのパッケージに2つのサービスをインストールすることは可能ですか?どのように?