监控Squid运行脚本

简介:
  因squid对多核服务器支持不够理想,所以在每台freebsd服务器上(4核)开启了3个squid
 
 
平稳的运行了一段时间,有一天客服反映网页无法打开,然后就对每台squid服务器进行检查,发现有台服务器其中的一个squid进程死掉了,重新启动该squid,一切正常,为了及时发现squid进程故障并重启squid,特写了以下脚本
 
定时器,每过10分钟检查一次,无限循环
vi /root/restart_squid.sh
#!/bin/sh
while true    
do
Squid1_IP=`awk '/ifconfig_lo0_alias0/{print $2}' /etc/rc.conf`
Squid1Num=`netstat -an | grep -c $Squid1_IP`       
if [ $Squid1Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid1 start
    /usr/local/etc/rc.d/squid1 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_1 started" >> /var/restart_squid.log    
fi
Squid2_IP=`awk '/ifconfig_lo0_alias1/{print $2}' /etc/rc.conf`
Squid2Num=`netstat -an | grep -c $Squid2_IP`       
if [ $Squid2Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid2 start
    /usr/local/etc/rc.d/squid2 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_2 started" >> /var/restart_squid.log    
fi
Squid3_IP=`awk '/ifconfig_lo0_alias2/{print $2}' /etc/rc.conf`
Squid3Num=`netstat -an | grep -c $Squid3_IP`       
if [ $Squid3Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid3 start
    /usr/local/etc/rc.d/squid3 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_3 started" >> /var/restart_squid.log    
fi
sleep 10m
done
 
chmod +x /root/restart_squid.sh
/root/restart_squid.sh
 
也可以用计划任务来实现
vi /root/restart_squid.sh
#!/bin/sh
Squid1_IP=`awk '/ifconfig_lo0_alias0/{print $2}' /etc/rc.conf`
Squid1Num=`netstat -an | grep -c $Squid1_IP`       
if [ $Squid1Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid1 start
    /usr/local/etc/rc.d/squid1 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_1 started" >> /var/restart_squid.log    
fi
Squid2_IP=`awk '/ifconfig_lo0_alias1/{print $2}' /etc/rc.conf`
Squid2Num=`netstat -an | grep -c $Squid2_IP`       
if [ $Squid2Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid2 start
    /usr/local/etc/rc.d/squid2 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_2 started" >> /var/restart_squid.log    
fi
Squid3_IP=`awk '/ifconfig_lo0_alias2/{print $2}' /etc/rc.conf`
Squid3Num=`netstat -an | grep -c $Squid3_IP`       
if [ $Squid3Num -lt 10 ] ; then    
    /usr/local/etc/rc.d/squid3 start
    /usr/local/etc/rc.d/squid3 restart
    adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`    
    echo "$adddate squid_3 started" >> /var/restart_squid.log    
fi
chmod +x /root/restart_squid.sh
crontab -e
*/10 * * * * root /root/restart_squid.sh


本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/291714,如需转载请自行联系原作者
相关文章
|
2月前
|
应用服务中间件 Shell 开发工具
nginx+shell脚本实现一键启用与关闭停机维护页面
nginx+shell脚本实现一键启用与关闭停机维护页面
61 0
|
1月前
|
应用服务中间件 nginx Windows
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
22 0
|
11月前
|
监控 应用服务中间件 Shell
Nginx 访问日志分析脚本
Nginx 访问日志分析脚本
86 0
|
监控 负载均衡 架构师
Nginx极简入门(八)Nginx性能监控及性能状态参数详解!
前面讲了如何配置Nginx虚拟主机、配置Nginx日志等基础内容。那么我们怎么查看Nginx的运行状态呢? 其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,对于想了解nginx的状态以及监控nginx非常有帮助。
Nginx极简入门(八)Nginx性能监控及性能状态参数详解!
|
运维 监控 Java
shell脚本配合zabbix实现tomcat的故障自愈
shell脚本配合zabbix实现tomcat的故障自愈 1.背景及实现方式方法 Tomcat运行JAVA类的程序代码经常会导致内存溢出,往往都是收到告警后再去处理,收到报警再处理就会拖延故障解决的时间,因此就需要靠故障自愈的机制来解决人为干预的成本。
382 0
shell脚本配合zabbix实现tomcat的故障自愈
|
应用服务中间件 Shell nginx
|
监控 Oracle 关系型数据库