使用crontab启动脚本守护tomcat进程

Crontab简介

crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行

一、安装

yum -y install vixie-cron
yum -y install crontabs
二、配置

cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态
在CentOS系统中加入开机自动启动: 

chkconfig --level 345 crond on

编辑crontab执行脚本任务

crontab -e

打开编辑面板

* * * * * /data/tomcats/tomcat_crontab.sh (参数) 需要被守护的tomcat名字 

0 0 * * * /data/tomcats/clean_up.sh

第一条为每分钟去执行tomcat守护脚本

第二条为每天0时清除日志也可以使用logrotate管理日志文件


crontab最小时间周期为分钟,如果想实现每秒钟执行,可以在脚本中通过代码实现,下面会附上实现脚本


编辑tomcat守护脚本

一、vim tomcat_crontab.sh

MYPATH=/data/tomcats/jdk1.8.0_40/bin
export JAVA_HOME=/data/tomcats/jdk1.8.0_40
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export MYPATH=$MYPATH:$JAVA_HOME/bin


tomcatName=$1
TomcatMonitorLog=/var/log/TomcatMonitor.log


Monitor()  
{
for ((i=0;i<60;i++));
do
tomcatID=$(ps -ef |grep tomcat |grep -w ${tomcatName} |grep -v 'grep'|awk '{print $2}')
echo $tomcatID
if [ $tomcatID ];then
   echo "server working ${tomcatName} [$(date +'%F %H:%M:%S')]"
else
  ps -ef|grep ${tomcatName}|grep -v grep|awk '{print $2}'|xargs kill -9
  echo "tomcat stoped  [$(date +'%F %H:%M:%S')]"
  echo "[error] tomcat need to restart"  
  echo "[info]  waiting..."  
  rm -rf /data/tomcats/${tomcatName}/work  
  /data/tomcats/${tomcatName}/bin/startup.sh  
fi
echo "------------------------------"    
sleep 1
done
}  
Monitor>>$TomcatMonitorLog 
二、对脚本赋予可执行权限

chmod -R 777 tomcat_crontab.sh

三、配置好crontab执行周期

crontab -e  具体配置代码上文已经提到

四、重新加载crontab配置

service crond reload

猜你喜欢

转载自blog.csdn.net/name_javahadoop/article/details/78292705