重启进程并添加crontab定时任务

一、脚本

尽量写绝对路径,防止出错

restart.sh 重启脚本
------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
ID=`ps -ef | grep "quartz.jar" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "---------------"
nohup /usr/lib/java-1.8.0/jdk1.8.0_181/bin/java -jar   /data/projects/quartz/quartz.jar --server.port=9998 --debug > /data/projects/quartz/printout.log 2>&1 &
---------------------------------------------------------------------------------------------------------------------

执行chmod -R 777 restart.sh赋予权限
alive.sh 检测宕机自动拉起
---------------------------------------------------------------------------------
#!/bin/bash
ls_date=`date +%Y%m%d`
ID=`ps -ef | grep "oa-meeting.jar" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
echo "---------------"
if [[ $ID -eq 0 ]];then
nohup java -jar  /data/projects/oa-meeting/oa-meeting.jar --server.port=8092 --debug > /data/projects/oa-meeting/logs/printout"$ls_date".log 2>&1 &
fi
-------------------------------------------------------------------------------------

二、修改linux系统定时任务

[root@node1 quartz]# crontab -e
--------------------------------------------
SHELL=/bin/bash		#不添加这个定时任务不执行
40 * * * * /data/projects/quartz/restart.sh		#每小时的40分执行脚本
*/1 * * * * /data/projects/oa-meeting/alive.sh  #每分钟执行一次
---------------------------------------
wq保存退出

crontab语法
Crontab 格式
使用crontab -e 添加要执行的命令。
添加的命令必须以如下格式:
* * * * * /command path

前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。

前5个字段分别表示:
分钟:0-59
小时:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)

  1. 每分钟定时执行一次规则:
    每1分钟执行: */1 * * * 或者 * * * *
    每5分钟执行: */5 * * * *

  2. 每小时定时执行一次规则:
    每小时执行: 0 * * * *或者0 */1 * * *
    每天上午7点执行:0 7 * * *
    每天上午7点10分执行:10 7 * * *

  3. 每天定时执行一次规则:
    每天执行 0 0 * * *

  4. 每周定时执行一次规则:
    每周执行 0 0 * * 0

  5. 每月定时执行一次规则:
    每月执行 0 0 1 * *

  6. 每年定时执行一次规则:
    每年执行 0 0 1 1 *

  7. 其他例子
    5 * * * * 指定每小时的第5分钟执行一次ls命令
    30 5 * * * ls 指定每天的 5:30 执行ls命令
    30 7 8 * * ls 指定每月8号的7:30分执行ls命令
    30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
    30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
    30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
    25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
    */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
    30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值