現在、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 に十分な電源がない限り、シャットダウンはトリガーされません。