Linux下利用定时任务监控酸酸乳服务脚本

续上篇文章,Linux下利用定时任务监控MySQL服务脚本,在文章中,我们对MySQL服务的3306端口进行了监控。后续说到,其他服务更改端口即可,这显然不够严谨。为什么呢?因为每个服务的启动方式不一样,由于文章内不方便表述,也就另开文章解释下原因。

问题描述:

每个服务的监听端口不同,我们已经能考虑到,但是脚本内的 service mysqld start 却是每个脚本都不同,所以我们在写脚本的时候,需要特别注意每个程序的启动方式。

如何查询启动方式?

我们一般安装服务后,都会给一些文档类材料,里面一般都会标注服务启动、关闭、重启这几个命令,所以我们利用这些文档,可以很轻松的控制程序的自动化。

酸酸乳脚本启动方式:

在此处介绍的酸酸乳脚本为Python版本,作者秋水逸冰。他几个脚本,包括liv、go、Python的启动方式均相同:

 /etc/init.d/shadowsocks start

有这几个参数:

/etc/init.d/shadowsocks start       //启动
/etc/init.d/shadowsocks stop       //关闭
/etc/init.d/shadowsocks restart  //重启

我们需要对前面文章的脚本进行修改为下列参数:

#!/bin/sh
port=$(netstat -nlt|grep 8080|wc -l)
if [ $port -ne 1 ]
then
/etc/init.d/shadowsocks start
echo 'restart ssr success!'
else
echo 'ssr is running!'
fi

注意一个特别重要的地方,8080端口。这里需要填上安装酸酸乳时候填写的端口。

我考虑过利用进程名来判断程序,但是程序名会产生歧义,酸酸乳好几个版本名字为Python,所以这个方法不可取。

我也考虑过利用ps -aux的路径来判断。毕竟名字可能一样,启动路径总该不同了吧?

测试发现此方法是可用的,但是有个最大的毛病,每个用户都需要去检查目录,因为安装方式不唯一,
所以为了生产环境一致来说,我还是采用端口监听方式来控制,对ps -aux感兴趣的同学可以自己修改修改脚本来使用,
ps -aux的判断准确性高于 netstat ,我也推荐此方式来监听。

脚本写好后,使用方法请参考上一篇文章,我也不重复造轮子。脚本有个共同性,可以进行举一反三。如果对其他服务感兴趣的,请自行修改使用。
记得修改这两个地方:端口和进程启动方式需要修改。

» 本文链接:Linux下利用定时任务监控酸酸乳服务脚本
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。
crontab
Comments (2)
Add Comment
  • mordoch

    这种监控的,supervisor更简单好用

    • 刺猬

      多个思路,不然有了菜刀后,怎么会出现剔骨刀呢?