定期的にマシンの状態を把握するために
先日導入・設定を行ったlm-sensorsを定期的に作動させてサーバマシンの状態を的確に把握できれば・・・と思い、まずはマシンの温度を記録していこうと思います。
定期的といえばcron!ということでスクリプトを作成してcronに登録し、ログとして保存していくことにしました。他にいい方法があればぜひとも教えていただきたいものですが・・・
まずはスクリプトを作成
以前、サーバのバックアップを自動で取得するときや郵便番号データの取込みをやってみたときに使用した程度で初心者の域をまったく出てないので上手くいくかどうか不安ですがとりあえずやってみます。
$ su -
パスワード入力
# cd ./job/ (/root/job/ディレクトリがあることが前提です)
# vi lm-sensors.sh
とでも入力して
#!/bin/bash # 環境変数 LOG_TXT="/var/log/lm-sensors.log" # 開始ログの出力 echo `date +%Y/%m/%d' '%H:%M:%S`' 計測開始' | tee -a $LOG_TXT # sensorsコマンドを実行 sensors >> $LOG_TXT # 終了ログの出力 echo `date +%Y/%m/%d' '%H:%M:%S`' 計測終了' | tee -a $LOG_TXT exit
この内容で「:wq」にて保存した後
chmod 700 ./lm-sensors.sh
と入力して実行権限を付与します。それではためしに動かしてみると・・・
できたー!!
なんて叫べるような高度なことは何もないんですけどね・・・自分にはこのぐらいのことでも嬉しいんです。
cronに登録して自動実行させる
cronの使い方を復習がてら纏めると・・・
設定ファイルの場所
/etc/cron.d/以下に任意の名称でファイルを作成します。今回は「lm-sensors」とでもつけておきましょう。
ファイル内の記述方法
分 時 日 月 曜日 ユーザ コマンド
の各フィールドに値を設定して記述します。今回は「root権限で/root/job/lm-sensors.shというスクリプトを毎日、0時~23時まで1時間毎に実行する」形をとってみようと思いますので
0 * * * * root /root/job/lm-sensors.sh
というような書式になります。
*印はワイルドカードですので毎月毎日毎曜日(要するに365日)毎時0分になったら動くようにしてみました。
このように登録して様子を見てみることにします。結果はログファイルをチェックして確認します。
※cronに関してはコチラのサイトを参考にさせていただいてます。いつもありがとうございます。
まとめ
今回はごくごく簡単に開始時間とコマンドの実行と終了時間をログ出力するだけに留まっています。が、これだけだと記録したログとにらめっこしながら「むっ、温度が上がってる!このとき誰が何をしてやがったんだ!?」なんてチェックをしなければいけません。
そこでどこかのセンサーで70℃を超えたらそのログをメールで管理者(てか自分)に飛ばすような仕組みにしたいと思います。ついでにtopコマンドなどを組み合わせてそのときのサーバの状況も一緒に送れたらいいかな~と。
いつ完成するかはまったく分かりませんが。。。