本页二维码,扫一扫分享到朋友圈
朋友圈

Nginx服务守护监控sh for Linux


阅读300 评论0 赞 25返回首页    go 编程与技术  go 服务器


由于Nginx的出色表现,越来越多的web服务器采用Nginx。虽然nginx很棒,但万一挂了呢?我们最好写个小脚本来监控。如果nginx挂了,系统自动重启。

当然,在给出脚本之前,先做几个假设,nginx的目录是/usr/local/nginx/,其pid conf 分别为在相应默认目录之下。实例脚本如下:


  1. #! /bin/bash   

  2.   

  3. pidFile=/usr/local/nginx/logs/nginx.pid  

  4. nginxBin=/usr/local/nginx/sbin/nginx  

  5. confFile=/usr/local/nginx/conf/nginx.conf  

  6.   

  7. if [ ! -f $pidFile ]; then      

  8.      $nginxBin -c $confFile  

  9. fi  


仅仅有上面的脚本还是不行的,需要加到系统计划任务中。这个时候就需要用到crontab了。这里有个小技巧,crontab 的时间最小是分钟,我们的监控脚本肯定是不可能以分钟为单位的,假如每5秒跑一下脚本,该怎么做呢?假设上面的脚本保存为/root/.bin/webmonitor.sh,用如下方式编辑crontab:

  1. * * * * * sleep 5; /bin/bash /root/.bin/webmonitor.sh > /dev/null  

通过上面的操作,该监控脚本基本可以运行了。当然你也可以继续拓展,怎么监控php之类的




检测启动脚本restart_nginx.sh写法

  1.  

  2. .~/.bash_profile

  3.  

  4. #################Nginx守护进程#################

  5.  

  6. nouse=`ps -ef | grep -i nginx | grep -v grep |grep -v sh |wc -l`

  7.  

  8. echo "nouse=${nouse}"

  9.  

  10. if [ ${nouse} -eq 0 ]; then

  11. echo "Nginx not exists";

  12. ${HOME}/nginx/sbin/nginx

  13. echo"Nginx 启动完成"

  14. else

  15. echo"Nginx exists";

  16. fi

#################crontab -e 配置

  1. #每5分钟检测一次,如果 down了重启nginx

  2. */5 * * * * sh ${HOME}/nginx/restart_nginx.sh>${HOME}/nginx/restart_nginx.log



  上一篇:go zend opcache的最佳设置
  下一篇:go iftop 网络实时流量监测工具iftop


评论


用QQ登录管理/创建网站 用微博登录管理/创建网站   发布于:09-12