最近不知道为什么公司某些服务包莫名的运行着运行着就死了,但是还是运行状态,就是各种接口调不通,重启服务后就没问题了,但是需要每天重启,所以写了个脚本:
第一步:编写shell脚本
.sh脚本内容,我这里命名为restart.sh:
#! /bin/bash
#jdk路径,根据你自己的jdk安装位置修改
export PATH=$PATH:/usr/local/jdk1.8.0_171/bin/
#要执行的jar包路径
cd /home/data/test2.0.0/
#要执行的jar包名称
APP_NAME=test-2.0.0.jar
#找到服务的pid
pid=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' `
#停止服务
kill -9 $pid
#启动服务
nohup java -jar -Duser.timezone=GMT+8 test-2.0.0.jar &
第二步:定义crontab执行规则
命令:
crontab -e
加入规则:
先搞个5分钟执行一次,看看好使不好使,好使了再根据需要定时,我这里是好使的。
第三步:学习crontab的定时设置
命令:
more /etc/crontab
结果如下:
借花献佛,模仿菜某某程上的示例写几个例子,也加深一下自己的理解:
示例
示例1:每1分钟执行一次
* * * * *
示例2:每小时的第3和第15分钟执行
3,15 * * * *
示例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * *
示例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * *
示例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1
示例6:每晚的21:30执行
30 21 * * *
示例7:每月1、10、22日的4 : 45执行
45 4 1,10,22 * *
示例8:每周六、周日的1 : 10执行
10 1 * * 6,0
示例9:每天18 : 00至23 : 00之间每隔30分钟执行
0,30 18-23 * * *
示例10:每星期六的晚上11 : 00 pm执行
0 23 * * 6
示例11:每一小时执行
0 */1 * * *
示例12:晚上11点到早上7点之间,每隔一小时执行
0 23-7/1 * * *