专栏首页Python程序员杂谈用shell来监控web服务

用shell来监控web服务

早上起来发现服务器又重启了,难道webfaction有隔一段时间重启一次的习惯?或者是我占用的内存太多了,所有进程都被kill掉了。 总之不管什么原因吧,自己搞一个监控还是很有必要的。

这个监控的功能很简单,监控我的三项服务:nginx,memcache, supervisord。如果发现被停掉了,就启动。据此,查了下shell的用法,写了个脚本:

#!/bin/sh
echo 'run'

result=`ps aux|grep 'username' | grep 'nginx' | grep -v 'grep' | wc -l`
if [ $result -lt 1 ]; then
    echo 'no find nginx'
    `/etc/nginx/sbin/nginx`
fi

result=`ps aux|grep 'username/memcached' | grep -v 'grep' | wc -l`
if [ $result -lt 1 ]; then
    echo 'no find memcache'
    `memcached -d -m memory -s /tmp/memcached.sock -P /tmp/memcached.pid`
fi

result=`ps aux|grep 'username' | grep 'supervisord' | grep 'selfblog' | grep -v 'grep' | wc -l`
app_path='~/virtualenvs/bloga'
if [ $result -lt 1 ]; then
    echo 'no find supervisord'
    `$app_path/bin/supervisord -c $app_path/selfblog/conf/supervisord.conf`
fi

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • linux下的高效代码搜索工具-ack

    grep foo $(find . -name '*.pm' | grep -v .svn)

    the5fire
  • Struts2web端和服务器端数据交互

    上篇文章写了jsp页面或者html页面怎么通过url调用服务器端Action中的方法,那么web端和服务器端的数据应该怎么传递呢? 不知道大家是否记得在Serv...

    the5fire
  • DRP项目学习总结:DRP整体架构

    整个项目中使用JSP和JSTL来进行页面效果的展示,在这一次通过提交表单或者是AJAX来完成同Servlet的交互。每一次提交表单或者通过异步模式进行交互都会通...

    the5fire
  • Linux - 常用命令:grep

    参数 -c 只输出匹配行的个数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n...

    晴天Online
  • SVN Log命令常用组合【转】

    转自:https://blog.csdn.net/xuanwenchao/article/details/8875103

    用户3033338
  • 【Go 语言社区】linux 下Go服务器部署(也同样适合C++等)

    作为服务器开发人员,GO语言内网测试数据及调试肯定很简单,如果你在Windows下开发 直接编成EXE执行就可以,然后部署外网在打包成linux的执行文件(交...

    李海彬
  • 一条命令完成Linux下批量杀死某应用程序相关的进程

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

    耕耘实录
  • 记一次感染挖矿病毒的经历

        下午五点十分、手机开始狂收阿里云ECS实例告警,所有告警都提示机器CPU满载。

    尚浩宇
  • 常用Linux命令整理

    1、匹配文本内容,常用grep -E '查找的内容' 文件名。更多用法参考:https://www.cnblogs.com/leo-li-3046/p/5690...

    用户5325874
  • linux命令-grep

    咻一咻

扫码关注云+社区

领取腾讯云代金券