ディスクのパーティション領域のオーバーフローは気になるものである。ましては、容量が少ない少ないHDDでは、常に、DFコマンドでパーティションの容量のパーセンテージに目を配らなければならない。目安としてだいたい90%を越すと危ないと言われている。知らないうちに、ファイル書き込みが出来なくなっていることがあるので注意が必要である。ここで紹介するシェルプログラムは、本当に簡単であるが実用的なので試していただければ幸いである。
1.パーティション領域の容量確認
パーティション領域の容量確認は以下のコマンドで行う。
# DF -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0d0s0 1984230 63394 1861310 4% /
/dev/dsk/c0d0s6 2141102 444727 1653553 22% /us r
/dev/dsk/c0d0p0:boot 10484 1624 8860 16% /boot
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
/dev/dsk/c0d0s3 3007086 23577 2923368 1% /var
swap 392964 0 392964 0% /var/run
swap 392976 12 392964 1% /tmp
/dev/dsk/c0d0s5 4030518 1030173 2960040 26% /opt
/dev/dsk/c0d1s7 2443758 136 2394747 1% /export/home
/dev/dsk/c0d0s1 962134 197961 706445 22% /usr/openwin
これは、Solaris8だが、他のLinux等でも同じである。
2.監視シェルスクリプト
監視シェルスクリプトのソースを以下に示す。
#!/bin/sh
df -kl | grep -iv filesystem | awk ‘{ print $6″\t”$5}’ | grep <ターゲットパーティション> | while read LINE; do PERC=`echo $LINE | cu t -d”%” -f1 | awk ‘{print $2}’`
echo “$LINE \n”
echo “$PERC \n”
if [ $PERC -gt <目安のディスクのパーセンテージ>]; then
echo “ALERT Mail Send to mity@kozupon.com \n”
echo “${PERC}% ALERT” | /var/qmail/bin/qmail-inject “${LINE} on `hostname` is almost full” <通知先メールアドレス>
fi
done
exit 0
行が続いているところは、一行の部分である。
<ターゲットパーティション> は、例えば /usr のように指定する。
<通知先メールアドレス> は、アラームとしてメール通知するため、貴方が通知したいメールアドレスを記入する。
<目安のディスクスペースパーセンテージ> は、その数字以上になったら、アラームを出す数字である。85% 以上なら 85 と記入する。このシェルは、あるパーティションの容量が設定した数値以上になると、アラーム(メールで知らせる)を出すソースである。
MTAはqmailを使うことを前提としてるので、Sendmailの場合は、それなりに改造してほしい。
3.クーロンでスケジューリング
毎度のことであるが、当然これを自動化するためにクーロンでスケジューリングするのが良いと思う。例えば、2項のシェルを df.sh と言うファイル名にして、 /etc におくことにする。
# vi /etc/crontab
前略
*/60 * * * * root /etc/df.sh
設定し終えたら、
# killall -HUP cron もしくは、cronの起動スクリプトをリスタートさせる。
とでもしておけば、60分おきに実行します。もっと、長くしたい場合には、それなりに設定してください。
以上
コメント