LinuxCron重启tomcat小记

背景:机房在刚搭建之初总是各种各样的原因断电,需要频繁的手动重启服务,就很烦~

来吧,show your code no bb

1,写个shell脚本,用于监测服务是否被杀死,若被杀死则重启

#!/bin/bash
tomcatPath=/data/tomcat
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath bin路径:$binPath"
pid=`ps aux | grep "/data/tomcat/bin" | grep -v grep | grep -v retomcat | awk '{print $2}'`
echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]tomcat进程为:$pid"
else
echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
echo "[info][$(date +'%F %H:%M:%S')]准备删除工作work缓存目录... 路径:$tomcatPath"/work""
rm -rf $tomcatPath"/work/*"
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/catalina.sh" start
fi

脚本可以放在下文所示的目录中(/etc/cron.d)

脚本需要可执行权限,这没啥说的

chmod +x restart_oa.sh 

2,cron命令

2.1

  • /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
  • /etc/crontab 这个文件负责调度各种管理和维护任务。
  • /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
  • 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

2.2

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

在root用户下(你的服务是用root启动的)执行

我们用crontab -e进入当前用户的工作表编辑   cron表达式 脚本目录

格式如下

 

 * * * * * /etc/cron.d/restart_oa.sh : 每分钟执行restart_oa.sh脚本

 

posted @ 2021-11-05 14:16  EspenWu  阅读(141)  评论(0编辑  收藏  举报