开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

监控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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ARMS3.0 助力安利搭建一体化运维监控平台
本篇内容分享了ARMS3.0 助力安利搭建一体化运维监控平台。
131 0
cron辅助管理squid
利用cron的定时功能辅助对squid代理进行上网限制:   1. Squid是我所用过的最好的代理服务器(my opinion)   2. 该文档,该功能只适用于使用静态ip的局域网   3.想要实现的功能:   在工作时间,让一部分办公电脑(allow表中的)上网,在非工作时间,让所有办公电脑上网,定时切换。
893 0
squid缓存规则
CODE:# NETWORK OPTIONS(有关的网络选项)# ------------------------------------------------ ...
639 0
6963
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载