自鯖機でPT2ロスト。そして録画失敗 orz 1

 PT2を自鯖機(ubuntu server 10.04)で運用初めて1年半程経過した。 日々録画に忙しい自鯖機だが、システム更新の何回に1回の割合で、再起動後にPT2を見失ってしまう事があった。(おそらくカーネルが更新されたタイミングにドライバが外れてしまうと思うのだが)

 大体は、再起動後にPT2の動作確認を取るのだが、昨日は再起動した際にその確認を怠ってしまった。 結果、PT2が正常に認識されず、昨晩の録画予約が全て失敗していた。 そしてとても悲しかったのは、その録画予定の中に最終回のモノがあったこと。

orz

と、言うことで(今頃だが)対策を施す事にした。

処理の流れ

通常、手動によるPT2の動作確認・復旧の流れは

  1. PT2の認識確認
    $ ls -lart /dev/pt1video?

    これでファイルが4つあれば、PT2は認識されている。
    この場合このまま終わり。

    出力が空だとPT2が認識されていないという事なので、PT2のドライバを作成し再構成する。

  2. ドライバの作成処理・カーネルに組込む処理
    $ cd $driver_d
    $ make clean
    $ make
    $ sudo make install
    $ sudo /sbin/insmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko
  3. PT2の認識確認
    $ ls -lart /dev/pt1video?

という一連の流れをスクリプトに落とし、各種状態に応じてsyslogにログ、メールするようにする。

メールを送る設定

シェルスクリプト内からメールを送るにはmailコマンドを使うといいみたいだ。
が、自鯖機にはメールサーバーを立ててない(もしくはちゃんと設定していない)ので、少し設定が必要。

◆ssmtp を使ってメール送信する為の設定
何はともあれssmtpのインストール。

$ sudo apt-get install ssmtp

/etc/ssmtp/ssmtp.conf の編集。 以下の行を編集、なければ追記。

root=hogehage@hoge.xxx
mailhub=smtp.hoge.xxx:587
AuthUser=hogehage@hoge.xxx
AuthPass=hogepassword
UseSTARTTLS=YES

下記のサイトを参考にした。 多謝。 orz
>> 悠々日記|Ubuntu コマンドラインでメール送信 sendmail

◆文字化け対策等を施したメール送信
下記のサイトを参考にした。 多謝。 orz
>> tree-tips|bashのmailコマンドでメールを送信

起動時に実行

作成したスクリプトをシステム起動時に実行するようにする。
いくつか解があるようだが、最終的に下記にした。

/etc/init.d 配下に作成したシェルスクリプトを置き、/etc/rc2.d 配下に「S99xxxxx」でリンクを作成した。
(自鯖機のランレベルは2(runlevelコマンドで確認)だったので rc2.d 配下に作成)

シェルスクリプト

で、出来たのが下記。
メール送信処理等は確認できたが、実際にPT2を見失った場合にちゃんとドライバが再構成されるかまではチェック出来てない。 まぁ、それは次回カーネル更新があった時までとっておく。

#!/bin/sh
#——————————————–
# CheckPT2.sh
#——————————————–
# PT2の動作確認を行い、認識されていない場合は
# PT2ドライバの再構成処理を行う。
# →システム更新後の再起動でPT2のロスト多発の為
#
# (1) PT2の認識の有無はsysylogへ記録
# (2) PT2が認識されていない場合、メールで携帯へ
#——————————————–
LOGGER=’/usr/bin/logger -t CheckPT2 -i’

#******************************
# LogMail
# syslogへの書き込みとメール送信
#******************************
LogMail() {
msg=$1

# logging msg to syslog.
$LOGGER $msg

#— define fixed variables ——
from=”hogehoge@hage.xxx”
to=”hogehoge@hage-mobile.xxx”
subj=”PT2 info”

inputEncoding=”utf-8″
outputEncoding=”iso-2022-jp”
subjectHead=”=?${outputEncoding}?B?”
subjectBody=”`echo “$subj” | iconv -f $inputEncoding -t $outputEncoding | base64 | tr -d ‘\n’`”
subjectTail=”?=”
subject=”$subjectHead$subjectBody$subjectTail”
contents=”`echo $msg | iconv -f $inputEncoding -t $outputEncoding`”
echo “$contents” | mail -s “$subject” “$to” — -f “$from”
if [ $? -eq 1 ]; then
$LOGGER “sendMail failure”
fi
}

#******************************
# checkPT2
# PT2の動作確認処理
#******************************
checkPT2 () {
pt2n=`ls -lart /dev | grep pt1video | wc | gawk ‘{print $1}’`

# if pt2 was recognized, pt1video device was 4.
if [ $pt2n -eq 4 ] ; then
$LOGGER “INFO: PT2 works fine!”
return 0;
else
$LOGGER “WARNING ::: PT2 dosen’t work !!!”
return 1;
fi
}

#—————–
# PT2の認識確認
#—————–
checkPT2
if [ $? -eq 0 ]; then
# PT2 works fine, so exit.
exit 0
fi

#******************************
# PT2ドライバ再構成処理
#******************************
d_home=/home/hogehage/PT2/driver
cd $d_home
/usr/bin/make clean
/usr/bin/make
sudo /usr/bin/make install
sudo /sbin/insmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko

#—————–
# PT2の認識確認
#—————–
checkPT2
if [ $? -ne 0 ]; then
LogMail “== PT2: LOST == \n PT2 dosen’t work.\n FAIL: Re-configure PT2 driver.”
exit 1;
fi

LogMail “– PT2: INFO –\n PT2 dosen’t work.\n Success: Re-configure PT2 driver.”
exit 0

One comment on “自鯖機でPT2ロスト。そして録画失敗 orz

  1. Pingback: ffmpegのログメール、来ないように設定 ← PCと映画とテレビと、3rd

Leave a Reply

  

  

  

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください