本脚本是检测内存值是否超过某个阈值,如果超过某个阈值就发出报警,并发邮件到指定邮箱。
#!/bin/bash
read -p "Please input your file name: " file_name
touch /tmp/$file_name
top | head -4 | tail -1 | awk '{print $4/1024,$6/1024}' >> /tmp/$file_name
result=`cut -d "." -f2 /tmp/$file_name | tail -1 | awk '{print $2}'`
date_time=`date +%H%M`
date_time2=`date +%H:%M`
function checkmem(){
if [ $result -le 30 ]
then
echo "Alert, The memory has not enough !"
else
if [ $date_time -eq 0930 ]
then
echo "$date_time2 $result">>/tmp/gather_mem.txt
elif [ $date_time -eq 1030 ]
then
echo "$date_time2 $result">>/tmp/gather_mem.txt
elif [ $date_time -eq 1400 ]
then
echo "$date_time2 $result">>/tmp/gather_mem.txt
elif [ $date_time -eq 1500 ]
then
echo "$date_time2 $result">>/tmp/gather_mem.txt
else
echo "The memory have $result M !"
fi
fi
}
checkmem
由于服务器时内网服务器,并没有配置SMTP 服务器,所以我没有写发送到指定邮箱的命令。
如果有需要的话可以自行进行修改。