Solaris空間不足寄發Mail通知

因為上次遇到Solaris主機空間不足,導致ERP測試區當機,
所以寫了一個簡單的Shell Script來通知自己空間不足。

ERP測試區的檔案放在一個stagepool/stage的空間,
所以先以df指令查看目前的資訊及欄位定義。
bash-3.2# df -k |grep stagepool
stagepool/stage  1577189376 37143768 415993049  9% /stage

欄位意義分別是:
Filesystem、kbytes、used、avail、capacity、Mounted on

所以我需要的是kbytes與avail的欄位,分別位在第2、4個欄位

Shell Script的語法如下:
#!/bin/bash
ck_a = `df -k |grep stagepool/stage | awk '{print int($4/$2*100)}'`
if [ $ck_a -lt 5 ]; then
   echo "Over 90% Uses" | mailx -s "Alert" me@mail.com.tw
fi

int($4/$2*100)是指第4個欄位(avail)除以第2個欄位(kbytes),
乘上100換成百分比數值後只取整數。
其中 -lt 是小於的判斷元,判斷是否小於5%的可用空間。
mailx就是寄Mail的指令,參數-s表示自訂主旨為「Alert」。

把Shell Script增加到Crontabl中排程就可以了。