在实际生产环境中使用比较多web环境一般是apache,平时为了确保Apache的正常运行,一定会对Apache进程监控,但是一般情况下效率并不是很好,为了确保生产环境中的业务正常运行或者是故障快速处理可以利用检查系统中是否有httpd的tcp连接来判断,为此就写了一个检查Apache的脚本
#!/bin/bash #use monitor httpd status #chmod 700 #check_httpd.sh version 1.0 #2016.11.28 jim httpd_port=`netstat -tuln|awk '{print $4}'|grep ':80'` apache_base_bin=/usr/local/apache/bin log_dir=/data/backup/logs/apache if [ ! -e "$log_dir" ];then mkdir -p $log_dir fi if [ "$httpd_port" == "" ];then $apache_base_bin/apachectl restart echo "apache restart `date +"%Y-%m-%d %H:%M:%S"`"|tee -a $log_dir/`date +"%Y%m%d-%H:%M"`.log fi
然后再在crontab中添加定时一分钟检查一次
*/1 * * * * /usr/local/scripts/check_httpd.sh
当然也可以通过这个脚本定时检查一些需要tcp或者是udp连接的服务