為了避免像上次archive log把空間佔滿,導致DB無法正常運行,所以寫了一支Script來檢查。
重點如下:
1、因為要判斷的字串是proddata/archive,所以加上跳脫字元「\」。
aa=`bdf | awk '/proddata\/archive/ {print $2/$1}'`
bb=`bdf | awk '/proddata\/archive/ {print $0}'`
2、因為一天要判斷兩次,所以以時間來區分。
if [ $cc -gt 12 ]; then
dd=80 --> 中午12以後,使用率80%
else
dd=60 --> 中午12以前,使用率60%
else
dd=60 --> 中午12以前,使用率60%
fi
3、因為Shell無法直接比對有小數的數值,所以用bc來解決,scale是指要取到小數第幾位。
`echo "scale=0;$aa*100"|bc` --> 取整數,因為scale是0
4、最後以mail的方式將訊息寄送。
echo $bb | mailx -s "DB(Archive log) insufficient free space" keven@XXX.com.tw
完整的Script如下,只要再加入Crontab就可以了。
aa=`bdf | awk '/proddata\/archive/ {print $2/$1}'`
bb=`bdf | awk '/proddata\/archive/ {print $0}'`
cc=`date '+%H'`
if [ $cc -gt 12 ]; then
dd=80
else
dd=60
fi
if [ `echo "scale=0;$aa*100"|bc` -gt $dd ]; then
echo $bb | mailx -s "DB(Archive log) insufficient free space" keven@XXX.com.tw
fi
全站熱搜
留言列表