背景故事

最近一直都在公司运营办公室上班,每天的工作比较忙碌,博客的更新速度也有点慢了下来,不过忙碌之中还是解决了一些实际问题。

运营办公室内有一台IBM System X3400 M3(如果大D我没记错的话),上面部署着Tomcat,后来有同事反映说有时会无法访问服务器上跑的网站,ssh连接到服务器上看了一下,往往不能访问时是由于Tomcat进程自动关闭掉了,大D也没有花时间查看日志去看为什么关闭了,于是干脆写个shell脚本出来,每当无法访问的时候让同事运行一下就好了。

正文

由于并不了解Tomcat,所以这个脚本可能有一些局限性,各位看官可以根据自己的实际需要修改一下,以适配您自己的生产环境。

具体思路就是首先查看Tomcat所依赖的进程是否存在,如果进程存在的话,那么则检测网站首页的返回码是不是200,以确定Tomcat的服务是否正常。

直接丢代码出来:

最后一个fi前面的sleep 10其实可以删去,为什么要加这个,后面会说到。

番外

写完之后直接远程到ssh上面跑,嘿,还不错。但是这时候大D忘记了一个问题,大D的同事并不会使用Linux的bash,更别提通过ssh连接上去然后直接执行.sh了。

查看了一下服务器,基本上一直会有一个普通权限用户登陆上去。再加上脚本需要root账户来运行,本来想通过shell来进行提权操作,直接提权到root,搜索了一圈无果,思考了一番,直接曲线救国。

也就是通过ssh,以root的身份直接登陆localhost,然后执行脚本。

那么这里需要安装sshpass来解决ssh登陆不能在命令行中制定密码的问题。

可以直接在https://sourceforge.net/projects/sshpass/上下载到sshpass 1.06的压缩包然后进行编译安装。

写一个新的shell脚本,这里取名为first.sh,该脚本的用户组均设置成普通用户的用户组。同时+x执行权限。

这样就算是完成了在普通用户身份下去使用root用户脚本的问题了,最后就是将终端添加到桌面上,然后右键-属性-基本-命令,将内容修改为:

当然,其实最好的办法就是直接写进cron定时运行,然而大D并没有这样做,你猜为什么?

版权声明
转载保留版权: 大D技研室 | 《Centos下检测Tomcat是否正常运行shell脚本》
本文链接地址:https://www.dadclab.com/archives/6396.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , , , , , 标签