為了避免像上次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%
       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就可以了。

#!/bin/sh
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
arrow
arrow
    全站熱搜

    keven 發表在 痞客邦 留言(0) 人氣()