crontab介绍
- Linux crontab命令,是Linux的任务调度命令,可以让用户使用此命令设置定期执行程序,这个是操作系统安装后会自动启动的。
- Linux任务调度主要分为系统任务和个人任务,我们主要使用它完成我们自己需要定期执行的某些程序。
- 语法:crontab [ -u user ] file 或 crontab [ -u user ] { -l | -r | -e }
- -u user是指定在某用户下执行,不设置就是默认自己
- -l 是list的意思,列出所有的任务
- -r 是remove的意思,删除所有任务
- -e 是edit编辑的意思,可以使用它打开crontab,可以在里面编辑新增,默认是vi。编辑完保存自动生效。
- 时间格式:f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。可以参考菜鸟教程
脚本介绍
- 主要是通过ps -ef|grep命令查看进程是否存在,不存在则启动;如果你的tomcat进程假死,进程还在,则没办法使用此脚本重启;
- set -m加下,防止使用脚本启动后,后期异常关闭
- crontab最短一分钟一次,如果接受不了这个频率,可以采用其他方法监控重启服务;
- crontab -e 进入编辑页面,在里面添加任务即可
*/1 * * * * /bin/bash /home/static_protect.sh >> /home/protect_run.log 2>&1
;
#!/bin/sh
TOMCAT_PATH=/home/tomcat-static #tomcat位置
TOMCAT_BIN_PATH=$TOMCAT_PATH/bin #启动脚本位置
SERVER_NAME=/home/tomcat-static/bin/tomcat #服务名称,保证唯一
proc_num()
{
num=`ps -ef | grep $SERVER_NAME | grep -v grep | wc -l`
return $num
}
proc_num
number=$?
echo $number
if [ $number -eq 0 ]
then
#开始尝试启动
ps -ef|grep -v grep|grep $SERVER_NAME | grep java |awk '{print "kill -9 "$2}'|sh
sleep 1
set -m
$TOMCAT_BIN_PATH/startup.sh
sleep 50
fi
来源:CSDN
作者:坚持是一种态度
链接:https://blog.csdn.net/u010882234/article/details/104119083