因為上次遇到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中排程就可以了。
文章標籤
全站熱搜
創作者介紹
創作者 keven 的頭像
keven

平凡的幸福(備站)

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