1. 程式人生 > >使用shell指令碼監控cpu,磁碟,記憶體

使用shell指令碼監控cpu,磁碟,記憶體


#!/bin/bash
now=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S'`
#cpu使用閾值
cpu_warn='75'
#mem空閒閾值
mem_warn='100'
#disk使用閾值
disk_warn='90'
#---cpu
item_cpu () {
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'|cut -f 1 -d "."`
cpu_use=`expr 100 - $cpu_idle`
echo "$now 當前cpu使用率為 $cpu_use" >> /opt/cpu.log
if [ $cpu_use -gt $cpu_warn ]
    then
        echo "cpu warning!!!"
    else
        echo "cpu ok!!!"
fi
}
#---mem
item_mem () {
#MB為單位
mem_free=`free -m | grep "Mem" | awk '{print $4+$6}'`
echo "$now 當前記憶體剩餘空間為 ${mem_free}MB" >> /opt/mem.log
if [ $mem_free -lt $mem_warn  ]
    then
        echo "mem warning!!!"
    else
        echo "mem ok!!!"
fi
}
#---disk
item_disk () {
disk_use=`df -P | grep /dev | grep -v -E '(tmp|boot)' | awk '{print $5}' | cut -f 1 -d "%"`
echo "$now 當前磁碟使用率為 $disk_use" >> /opt/disk.log
if [ $disk_use -gt $disk_warn ]
    then
        echo "disk warning!!!"
    else
        echo "disk ok!!!"
fi


}
item_cpu
item_mem
item_disk

大家可根據需求將echo報警改為郵件報警。