实用代码|定期检查应用程序状态的shell脚本每天进步一点,离大腿更近一步!阅读本文大约需要5分钟。有时候,我们挂在服务器上的应用会因为一些特殊情况挂掉,导致项目经理对我们说:再挂!快来看看吧!于是就有了下面这个脚本,用shell写的,定时查看应用状态,挂了就重启。这里我们以tomcat为例。可按以下步骤实现:1.创建并编辑脚本vimtest.sh2。将以下脚本内容复制到.sh文件中#自动检测某tomcat状态(w精确匹配v去掉某进程awk数据处理打印$2打印前两列)TomcatID=$(ps-ef|grep-w'apache-tomcat-7.0.81'|grep-v'grep'|awk'{print$2}')#tomcat启动程序(这里注意实际安装tomcat的路径)StartTomcat=/usr/local/apache-tomcat-7.0.81/bin/startup.shTomcatCache=/usr/local/apache-tomcat-7.0.81/work#定义要监控的页面地址,建议跟上具体的Projectxxx,推荐指定某个页面或界面#tomcat进程日志TomcatMonitorLog=/usr/local/zhangwk/logs/tomcatMonitor.logMonitorTomcat(){echo"[info]开始监控tomcat...[$(date+'%F%H:%M:%S')]"if[$TomcatID];then#这里判断TOMCAT进程是否存在echo"[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."#检查是否启动成功(如果成功,页面会返回status"200")TomcatServiceCode=$(curl-s-o$GetPageInfo-m10--connect-timeout10$TomcatUrl-w%{http_code})if[$TomcatServiceCode-eq200];thenecho"[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常..."elseecho"[error]tomcat页面出现错误,请注意...状态码为$TomcatServiceCode,错误日志已经输出到$GetPageInfo"echo"[error]访问页面出错,重启tomcat"kill-9$TomcatID#kill原tomcat进程sleep3rm-rf$TomcatCache#清理tomcat缓存$StartTomcat#启动tomcatfielseecho"[error]tomcat进程不存在!tomcat启动自动重启..."echo"[info]$StartTomcat,pleasewait......"rm-rf$TomcatCache#清理tomcat缓存$StartTomcat#启动tomcatfiecho"------------------------------"}MonitorTomcat>>$TomcatMonitorLog3.给脚本执行权限chmod+xtest.sh4.测试脚本是否报错shtest.sh如果有没有输出,说明脚本没有错误5.设置linux定时器进入定时器编辑器crontab-e添加如下文字*/5****/usr/local/zhangwk/test.sh保存退出注意:按照脚本实际路径填写,这里是指每五分钟执行一次**另外,还有一个实用代码,需要的可以拿去:省市级联查询(有最新数据)省市)关注微信《java发自内心》,后台回复:“省市级联”搞定~谢谢!立志成为大腿,每天都在努力的少年,期待你的到来!**
