脚本内容如下
#!/bin/bash
#磁盘超过百分之80发送邮件告警
DISK_USED=`df -T |sed -n "2p" |awk '{print ($4/$3)*100}'`
DISK_percentage=80
if [ `expr "$DISK_USED > $DISK_percentage"` ]
then
echo "$HOSTNAME服务器当前硬盘使用率为$DISK_USED%" | mail -s "服务器硬盘监控告警" 493630393@qq.com
fi
#内存使用率大于90%告警
mem_pused=`/usr/bin/free -m | sed -n '2p'|awk '{ print ($3+$6)/$2*100}'`
#memory usage percentage
percentage=90
#clean mem_cache 使用bc来进行比较,不然会报错
if [ $(echo "$mem_pused > $percentage"|bc) -eq 1 ]
then
echo "$HOSTNAME服务器当前内存使用率为$mem_pused%" | mail -s "服务器内存监控告警" 493630393@qq.com
echo "1qaz2wsx" |sudo -S sh /opt/shell/clean_mem_cache.sh
fi
#java_load进程宕机告警
JAVA_PROCESS=`ps -ef |grep java_load |grep -v grep |wc -l`
if [ $JAVA_PROCESS = 0 ]
then
echo "$HOSTNAME服务器上$JAVA_LOAD应用进程异常停止,正在自动开启" | mail -s "服务器java_load进程监控告警" 493630393@qq.com
nohup echo -e "70" |/opt/software/java_load > /dev/null 2>&1 &
fi
#tomcat进程宕机告警
#TOMCAT_PROCESS=`ps -ef |grep java |grep tomcat |grep -v grep |wc -l`
#if [ $TOMCAT_PROCESS = 0 ]
#then
# echo "$HOSTNAME服务器上tomcat应用进程已停止,请手动开启" | mail -s "服务器tomcat进程监控告警" 493630393@qq.com
#fi
#platform进程宕机告警
COMMONAPI_PROCESS=`ps -ef |grep java |grep common-api.jar |grep -v grep |wc -l`
if [ $COMMONAPI_PROCESS = 0 ]
then
echo "$HOSTNAME服务器上commonapi应用进程已停止,请手动开启" | mail -s "服务器tomcat进程监控告警" 493630393@qq.com
fi