Linux上编写监控jar包重启脚本

本文介绍了如何在CentOS7上安装和配置crontab,编写自动重启脚本,处理因Windows编辑导致的格式问题,并设置定时任务每分钟执行一次重启脚本,同时监控服务状态。此外,还提供了查看定时任务日志的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、centos7安装crontab

# 安装
yum -y install crontabs
# 查看状态
systemctl status crond
# 启动
systemctl start crond
# 开机启动
systemctl enable crond.service

image

二、编写自动重启脚本

进入目录:/home/haolb

vi publicsecurity_cron.sh
#!/bin/sh
#公安三维--重启命令
cd /home/haolb
# 查询程序占用
project=`ps -ef|grep publicsecurity-jeecg-boot-module-system.jar|grep -v grep|wc -l`
date=`date`
server_name="oyz_publicsecurity-jeecg-boot-module-system"

# $? -ne 0 不存在
# $? -eq 0存在
if [ ${project} -eq 0 ]
then
    echo  "时间:${date},${server_name}服务器已挂,重启中..."
       #停止服务
       systemctl stop ${server_name}
       #时间阻断:10s
       sleep 10s
       #启动服务
       systemctl start ${server_name}
       echo `date +%Y-%m-%d` `date +%H:%M:%S` $server_name
       echo "时间:${date},重启完成!"
else
    echo "时间:${date},${server_name}服务【正常】"
fi

需要赋予该sh文件可执行权限

chmod a+x publicsecurity_cron.sh

三、如果脚本在windows上编写,则必须转码

       shell脚本报错/bin/bash^M: bad interpreter: No such file or directory,通过查阅资料得知,shell脚本格式必须是unix才行,但我这个脚本是在windows上编写完成传到Linux服务器上的,所以一执行就报错:

image

windows环境下的文件是dos格式,即每行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识,查看该文件格式:

image

1.cat -A filename,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式。

2.vi filename,编辑文件,执行“:set ff=unix”,若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。

image

#保存
:wq!

检查是否转码成功,如果行末尾只是$,则是unix格式。

image

四、编辑系统定时任务文件

crontab -e

五、使用cron表达式,设置1分钟运行一次

*/1 * * * * bash /home/haolb/publicsecurity_cron.sh >> /home/haolb/restartLogs/restart.log

六、查看定时任务日志,可以看到每隔1分钟执行了一次

查看定时任务默认日志位置:tail -f /var/log/cron(因为我指定了日志路径,所以用以下命令)

tail -f restart.log

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值