linux centos7 定时执行服务监控脚本
2021-08-25
1. 需求
在服务挂掉之后我们要怎么做才能保证服务在短时间内开启?可以编写脚本监控服务的状态,在服务挂掉后及时将其开启,并定时执行该脚本。
2. 脚本编写
思路:平常我们可以通过 ps ,netstat 命令查看服务是否已经开启,所以可以通过这两个命令去监控服务的状态。每个服务的端口号是一一对应的,故我们选择监控端口号来判断服务的状态。具体脚本如下:
# 编写脚本
vi tomcat_monitor_port.sh
# init,因为 crontab 用的系统变量
source ~/.bash_profile # grep 服务的端口号,grep LISTEN 表示服务正在正常运行
server=`netstat -nat | grep 8090 | grep LISTEN` # 如果服务没有开启,sever 会是空的
# 如果服务没有开启,开启;若服务已经开启,输出提示
if [ ! "$server" ];
then
cd /home/server/app/tomcat-7.0.109-1/bin
./startup.sh
else
echo " tomcat is running!! "
fi
# 先执行一下,确保脚本可以正常运行
sh tomcat_monitor_port.sh
如果执行脚本发现错误,可以使用 sh -x tomcat_monitor_port.sh 进行错误排查
3. 设置定时任务
# 添加定时任务
crontab -e
# 每分钟检查一次 tomcat 进程是否运行,若没运行启动它
* * * * * sh /home/server/scripts/tomcat_monitor_port.sh

4. 测试
先关掉 tomcat 服务 ./shutdown.sh

查看端口 netstat -nat | grep 8090 ,服务正在关闭,现在的状态是 TIME_WAIT

等一分钟后再看,服务开启,现在端口状态变成 LISTEN

查看定时任务执行日志 cat /var/spool/mail/server

OK,到这里,一个简单的定时执行的服务监控脚本就完成啦
linux centos7 定时执行服务监控脚本的更多相关文章
- Linux下定时执行脚本(转自Decode360)
文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog 老师(业精于勤而荒于嬉 ...
- 实用脚本 2 -- Linux下定时执行脚本
今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...
- linux下定时执行任务方法【转】
之前就转过一篇关于定时任务的文章,前俩天用,还的翻出来看!!!再转一次,备用,,需要的时候不用麻烦找! ----------------------------------------------- ...
- 将一个jar包放到linux下定时执行
将一个jar包放到linux下定时执行 1.在dbtodb文件夹下新建一个dbtodb.sh,脚本内容为: #!/bin/bash cd /usr/dbtodb/ java -jar dbtodb.j ...
- linux crontab定时执行shell脚本
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:crontab -e 编辑周期任务30 21 * * * /etc/init.d/smb restart 每晚的 ...
- linux服务监控脚本
配置需要监控的服务器 数组定义:host_ports=(host_name=host_port=uri_path)host_name为容易识别的服务器名称host_port为服务器ip和服务端口uri ...
- linux 中定时执行python脚本
一.让Python随Linux开机自动运行 准备好要自启的脚本auto.py 用root权限编辑以下文件 sudo vim /ect/rc.local 在exit 0上面编辑启动脚本的命令(编辑rc. ...
- Linux下定时执行任务(crontab命令)
1.循环执行的计划任务 linux下面有atd和crond两种计划任务,其中,atd服务使用的at命令只能执行一次,而crond服务使用的crontab定义的命令,是循环作用的,所以crond才符合我 ...
- Linux centos开机执行JAR Shell脚本
Linux centos开机执行shell脚本 Linux centos开机执行 java jar 1.编写jar执行脚本 vim start.sh 加入如下内容(根据自己真实路径与数据进行编写) ...
随机推荐
- MySQL架构及优化原理
1 MySQL架构原理 1.1 MySQL架构原理参看下述链接: https://blog.csdn.net/hguisu/article/details/7106342 1.2 MySQL优化详解参 ...
- java实现自动静默打印功能
最近接到一个需求,要求实现自动打印功能,一般网页打印pdf需要借助浏览器的pdf组件,而且还要弹出打印窗口,再点击打印才能实现. 那么如何实现自动打印了,从点击自己网页上3次缩减到点击一次了? 一 ...
- GE ifix 5.5中关于历史报警表的制作
在关于污水处理厂项目实施过程中,按照业主要求,需要用到报警历史的查询功能,遂搜资料,整理在ifix5.5下如何实现报警历史的查询,经过一天的研究,以及多天的入坑,出坑,总算完成.现整理如下,供后来人参 ...
- [源码解析] 机器学习参数服务器ps-lite(2) ----- 通信模块Van
[源码解析] 机器学习参数服务器ps-lite(2) ----- 通信模块Van 目录 [源码解析] 机器学习参数服务器ps-lite(2) ----- 通信模块Van 0x00 摘要 0x01 功能 ...
- AHKManager.ahk AHK管理器 2019年12月15日
AHKManager.ahk AHK管理器 2019年12月15日 快捷键 {Alt} + {F1} ///////////////////////////////////////////// ...
- 组合数取模(lukas)板子
求 C(n,m)%mo #include<bits/stdc++.h>#define re register int#define mo 10007#define ll long long ...
- 初探Docker CentOS 7.9 2009 Mini 操作系统环境初始化 和Docker初始化
初探docker 什么是docker?docker就是一种虚拟化技术,将一个服务虚拟化成一个拥有操作系统内核作为基石的快速使用服务.不用担心环境不同服务效果 不同. docker 官网可以从中央仓库中 ...
- onethink-i春秋
记一道onethink漏洞拿flag的题. 因为用户名长度被限制了,注册两个账号分别为 %0a$a=$_GET[a];// %0aecho `$a`;// #(%0a是换行符的urlencode) 点 ...
- 使用TestNG,Apahcje POI和Excel文件进测试行数据驱动测试
import com.cxy_fanwe.common.test_fanwe_qiantai;import org.apache.http.Header;import org.apache.http. ...
- 常见web中间件漏洞(三)Nginx漏洞
nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,有 开源,内存占用少,并发能力强,自由模块化,支持epoll模型,可限制连接数,支持热部署,简单 ...