実践Linux

前のページホーム次のページ

21.AC電源監視 (apm)【Debian】

ノートパソコンを使ったAC電源の監視方法について説明します。
ノートパソコンのバッテリー状態は、apm(Advanced Power Management)で参照できます。
この apm情報と syslog出力、swatchによる状態検出、SSH接続など を組み合わせてAC電源監視を行います。早い話が、UPSの代りです。
本説明でこれから構築しようとしている自サイトの基本設定や 記載内容の注意事項については 1.はじめに に記載してあります。ご一読下さい。

目次
監視手順
apm状態(/proc/apm)の確認
apm情報確認スクリプト
swatchによるバッテリ残率の監視
参考リンク
参考図書

監視手順

top

1. pchogeX(ノートPC)を電源監視サーバとする。
2. pchogeX の AC電源OFF-LINE を監視する。
シェル・スクリプトをバックグラウンドで動かしてapm状態(/proc/apm)を監視する。(apmd パッケージは使用しない)
3. apm状態(/proc/apm)が OFF-LINE 状態なら、その情報を syslog へ送信する。
4. swatch にて、バッテリ残率のチェックを行う。
pchogeX の バッテリ残率が設定値以下になったら、他Linuxサーバに ssh接続を行い shutdown をかける。

apm状態(/proc/apm)の確認

top

/proc/apm を表示、確認する。
# cat /proc/apm
on-line  : 1.16 1.2 0x03 0x01 0x00 0x01 96% -1 ?
off-line : 1.16 1.2 0x03 0x00 0x00 0x01 96% 118 min
                         ^^^^
apm 状態は、4番目のデータで判断する。
0x01 : on-line
0x00 : off-line

apm情報確認スクリプト

top

apm情報(/proc/apm)は、シェル・スクリプトをバックグラウンドで動かして監視する。
apm情報確認スクリプトの作成
# touch /usr/local/bin/apm-check
# chmod 755 /usr/local/bin/apm-check
# vi /usr/local/bin/apm-check
--- apm-check ファイル ---
#!/bin/sh

# off-line check
while [ 1 -eq 1 ]
do
    #
    /bin/grep "0x00 0x00 0x01" /proc/apm  > /dev/null \
        && /usr/bin/logger -t apm-offline < /proc/apm
    /bin/sleep 60

    # test
    #/bin/grep -v "0x00 0x00 0x01" /proc/apm  > /dev/null \
    #    && /bin/date | /usr/bin/logger -t apm-offline
    #/bin/sleep 10
done
起動停止スクリプトの作成
# touch /etc/init.d/apm-check
# chmod 755 /etc/init.d/apm-check
# vi /etc/init.d/apm-check
--- apm-check ファイル ---
#! /bin/sh
# description: apm-check

#PATH=/bin:/usr/bin:/sbin:/usr/sbin

start(){
    ps ax | grep "/usr/local/bin/apm-check" | grep -v 'grep' > /dev/null && \
        echo "apm-check already running." && exit 0
    echo -n "Starting apm-check: "
    /usr/local/bin/apm-check &
    echo
}

stop(){
    echo -n "Stopping apm-check: "
    echo -e '#!/bin/sh' > /tmp/apm-check.stop
    ps ax | grep '/usr/local/bin/apm-check' | \
                 grep -v 'grep'         | \
                 awk -f /usr/local/bin/id1kill.awk >> /tmp/apm-check.stop
    ps ax | grep '/bin/sleep 60' | \
                 grep -v 'grep'       | \
                 awk -f /usr/local/bin/id1kill.awk >> /tmp/apm-check.stop
    chmod 755 /tmp/apm-check.stop
    /tmp/apm-check.stop
    echo
}

restart(){
    stop
    start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0
停止用awkスクリプトの作成
# vi /usr/local/bin/id1kill.awk
--- id1kill.awk ファイル ---
#
BEGIN{
    FS=" "
}
#
{
    printf("kill %s\n",$1);
}
#
END{
}
apm監視スクリプトの自動起動の登録
# update-rc.d apm-check defaults 94
apm監視スクリプトの自動起動の解除
# update-rc.d -f apm-check remove
apm監視スクリプトの起動・停止
# /etc/init.d/apm-check start
# /etc/init.d/apm-check stop
# /etc/init.d/apm-check restart

swatchによるバッテリ残率の監視

top

swatch 設定
※例)79% 以下を監視する。 指定値以下になったら、全サーバをshutdownする。
# vi /etc/swatch/swatch.conf
--- swatch.conf ファイル(追加修正部分) ---
#
# apm < 80% -->> shutdown all
watchfor /apm-offline/&&/ [1-7][0-9]%/
        echo red_h
        exec /usr/local/bin/bellr
        write swatch-disp:hoge
        mail=hoge@hoge-hoge.biz
        exec /usr/local/bin/shutdown-all
#
# apm off-line
watchfor /apm-offline/
        echo red
        exec /usr/local/bin/bellr
        write swatch-disp:hoge
        mail=hoge@hoge-hoge.biz
ベル(\a)&復帰(\r)用スクリプト
# touch /usr/local/bin/bellr
# chmod 755 /usr/local/bin/bellr
# vi /usr/local/bin/bellr
--- bellr ファイル ---
#!/bin/sh
echo -e "\a\a\a\r"
ベル(\a)のみ用スクリプト
# touch /usr/local/bin/bell
# chmod 755 /usr/local/bin/bell
# vi /usr/local/bin/bell
--- bell ファイル ---
#!/bin/sh
echo -e "\a\a\a"
動作確認
# /etc/init.d/swatch stop
# /etc/init.d/swatch start
# /etc/init.d/swatch restart

# /etc/init.d/apm-check stop
# /etc/init.d/apm-check start
# /etc/init.d/apm-check restart

# cat /proc/apm
# logger -t apm-offline test
# tail /var/log/syslog
必ず、実際の稼働テストを行っておくこと。
AC電源OFFの後、約?分後に shutdown するか確認しておく。

参考リンク


Linux全般 top
@IT:Linux Square
 【URL http://www.atmarkit.co.jp/flinux/】
Linuxの実践的な情報が満載。インストール・運用、サーバの設定まで詳細に解ります。私もお世話になっています。
@ITのLinuxによるシステム構築を目指す人のための情報交換フォーラムサイトです。
@IT:Linux Square全記事インデックス
 【URL http://www.atmarkit.co.jp/flinux/index/indexfiles/index-linux.html】
各種サーバパッケージや特集記事毎にまとまっていて見易いです。
@ITのLinux Squareの全記事一覧です。
LinuxWorld Online
 【URL http://www.idg.co.jp/lw/】
私は、Linuxサーバをこの雑誌(月刊リナックスワールド)で勉強しました。
サーバ・ノウハウ満載の実践情報誌、月刊リナックスワールドのサイトです。
LinuxWorld バックナンバー
 【URL http://direct.idg.co.jp/products2_1.msp?class=10006&n=2】
欲しい情報は探せばあります。
リナックスワールドのバックナンバー情報です。
インストール直後に絶対やるべき作業と設定
 【URL http://www.atmarkit.co.jp/flinux/rensai/security01/security01a.html】
適切なセキュリティ対策が施されずにサーバを公開すると、クラッキングなどの被害に遭ってしまいます。場合によっては知らない間に加害者になっているかも知れません。Linuxをインストールしたら必ず設定を見直しましょう。
Linux のセキュリティ対策について解説しているサイトです。
ホストレベルセキュリティの総仕上げ
 【URL http://www.atmarkit.co.jp/flinux/rensai/security02/security02a.html】
同じく、Linux のセキュリティ対策について解説しているサイトです。
公開サーバーを立てる時の注意
 【URL http://lists.debian.or.jp/debian-users/200009/msg00339.html】
公開サーバーを立てる時の注意事項についての情報です。
debian-users Mailing List Archive のサイトです。
WXG for Linux-FreeBSD
 【URL http://pc.2ch.net/test/read.cgi/unix/975596184/l50】
とりあえずの最新?情報はこちら(しかないのかな?)
2ちゃんスレです。
Linux - くだらねえ質問はここに書きこめ! 過去ログ検索
 【URL http://2chlinux.dtdns.net/2ch-linux-ks/】
困った時は助かります。
2ちゃんLinuxスレの検索サイトです。
機器別のUSB利用法
 【URL http://itpro.nikkeibp.co.jp/linux/column/inflection/6/usb5.shtml】
LinuxでUSB機器を利用するときの設定方法を解説しています。
日経Linux:Linux活用講座のサイトです。
USBの認識から使い方まで(前編)
 【URL http://www.zdnet.co.jp/help/howto/linux/0007master/09/】
LinuxでUSB機器を利用するときの設定方法を解説しています。
ZDNet デベロッパー Linux How-To のサイトです。
USBの認識から使い方まで(後編)
 【URL http://www.zdnet.co.jp/help/howto/linux/0007master/10/】
LinuxでUSB機器を利用するときの設定方法を解説しています。
ZDNet デベロッパー Linux How-To のサイトです。
正規表現メモ
 【URL http://www.kt.rim.or.jp/~kbk/regex/regex.html】
grep、 awk、 perl、正規表現が使えると大変便利です。
正規表現の総合的な説明をしているサイトです。
   
 【URL  】
 


syslog / swatch top
@IT:システム管理の基礎 syslogdの設定をマスターしよう
 【URL http://www.atmarkit.co.jp/flinux/rensai/root03/root03a.html】
ログは、システムの運用・管理のための重要な手掛かりとなります。
syslogdやlogrotateの設定方法を説明しているサイトです。
@IT:サーバのログ監視ツールを使いこなそう
 【URL http://www.atmarkit.co.jp/flinux/rensai/root04/root04a.html】
ログを取得しても、監視していなければ意味がありません。
ログを監視して、特定の文字列が出力されると管理者へ知らせるツール 「 swatch 」 の説明をしているサイトです。
まつかんのホームページ
 【URL http://www2s.biglobe.ne.jp/~matugaki/】
MS-Windows版syslogサーバソフト「 rsyslogdPRO 」を公開しています。
まつかんさんのサイトです。
InterSect Alliance - Information Technology Security
 【URL http://www.intersectalliance.com/projects/BackLogIIS/index.html】
MS-Windows版ツール 「 BackLog IIS 」を公開しています。
IIS web server log をsyslogへ送信できます。
これによりLinuxサーバとWindowsサーバの混在環境でsyslogを一本化することができます。
InterSect Alliance Pty Ltd のサイトです。
   
 【URL  】
 


SSH top
OpenSSH(日本語)
 【URL http://www.jp.openbsd.org/openssh/ja/index.html】
OpenSSH はネットワーク接続ツールである SSH プロトコルスイートをフリーで実装した通信ソフトです。OpenSSH は (パスワードを含む) すべての通信を暗号化するので、セキュアな通信ができるようになります。
OpenSSH 公式(日本語)サイトです。
OpenSSH
 【URL http://www.openssh.org/】
OpenSSH 公式(本家)サイトです。
OpenSSH 日本語マニュアルページ
 【URL http://www.unixuser.org/%7Eeuske/doc/openssh/jman/index.html】
OpenSSH 日本語マニュアルを掲載しているサイトです。
OpenSSH マニュアルページ
 【URL http://www.jp.openbsd.org/openssh/ja/manual.html】
OpenSSH マニュアル(最新版:英語)を掲載しているサイトです。
Tera Term Home Page
 【URL http://hp.vector.co.jp/authors/VA002416/】
Tera Term (Pro) は MS-Windows 用のフリーソフトウェアのターミナルエミュレーター(通信ソフト)です。
TTSSHと組み合わせてSSHクライアントとして使用できます。
Tera Term Home Page サイトです。
Japanized Tera Term Pro
 【URL http://www.sakurachan.org/soft/teraterm-j/】
Tera Term Pro 日本語版は、Tera Term Pro のメニューなどを日本語化したものです。
Tera Term Pro 日本語版 のサイトです。
TTSSH日本語版
 【URL http://www.sakurachan.org/soft/teraterm-j/ttssh/】
TTSSHはWindows上で動作するTELNETクライアント/端末エミュレータTera Term Pro上でSSH1 (Secure SHell protocol version 1)を利用するためのエクステンションです。
TTSSH 日本語版のサイトです。
WinSCP - SFTP and SCP client for Windows
 【URL http://winscp.sourceforge.net/eng/index.php】
WinSCP は、SSHを使った SFTP (SSH File Transfer Protocol) と SCP (Secure CoPy) のMS-Windows用クライアントソフトです。
ホストとクライアント間で、ssh 経由のファイル転送を GUI ベースで簡単に行うことができます。
WinSCP の公式サイトです。
WinSCPの使い方
 【URL http://www.is.titech.ac.jp/~tooru/winscp/】
puttygen による RSA 認証に必要な公開鍵と秘密鍵の生成手順、WinSCPの使用方法についての説明です。
WinSCP の使い方を解説しているサイトです。
WinSCPの使い方
 【URL http://www.dream-seed.com/server/winscp.html】
WinSCPのインストール、設定、使用方法、認証鍵の作成手順などの説明です。
WinSCP の使い方を解説しているサイトです。
PuTTYによるWindows上でのSSH接続
 【URL http://pure.fan.gr.jp/simm/ssh/putty.html】
MS-Windows用SSHクライアント PuTTY の説明です。使用方法、認証鍵の作成手順、認証鍵の記憶などの説明がされています。
PuTTYの解説をしているサイトです。
ウインドウズでSSHクライアントを使おう
 【URL http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winsshb.html】
代表的なMS-Windows用SSHクライアントソフトの使い方について説明しています。PuTTY、WinSCP2、TeraTerm+TTSSH、PortForwarderによるポート転送など。
MS-Windows用SSHクライアントの解説をしているサイトです。
OpenSSHキー(鍵)の管理
 【URL http://www-6.ibm.com/jp/developerworks/linux/011130/j_l-keyc2.html】
OpenSSHキー(認証鍵)の管理について説明しています。
ssh-agent と keychain を使用すると、認証鍵によるSSHクライアントの自動接続ができるようになります。Linux上で、シェルやCron内でも接続可能です。
IBM : developerWorks のサイトです。
Gentoo Linux Projects -- Keychain
 【URL http://www.gentoo.org/proj/en/keychain.xml】
Keychain は、SSH認証鍵を管理して、SSHクライアントの自動接続を可能にするLinux用ツールです。
Keychain 公式サイトです。
   
 【URL  】
 

参考図書

top

月刊リナックスワールド(IDGジャパン)
Linuxインターネットサーバ構築ガイド(アスキー)


前のページホーム次のページ
SSH (Linuxクライアント)Linux実践メモ

最終更新:2003/08/19 21:30:07 JST
Copyright (C) 2001-2010 AKIBA.BIZ. All Rights Reserved.