Contos7下tomcat定时重启实现

遇到一个需求,每天tomcat需要定时重启下,人工操作多累啊,还有可能会遗忘,所以来搞一波,走起~

 

1.创建脚本

可以在本地编辑好上传,也可以在服务器创建文件,我的文件名是“tomcat_restart.sh”具体内容如下:

#!/bin/sh
project_name=tomcat2
tomcat_path=/usr/local/tomcat/tomcat2/bin
pid=`ps -ef|grep $project_name |grep -v grep|awk '{print $2}'`
echo $tomcat_path
echo $pid
if [ -n "$pid" ];
 
    then
     
    {
     
        echo "==========tomcat is start============"
         
        $tomcat_path/shutdown.sh
         
        sleep 5
         
        $tomcat_path/shutdown.sh
         
        sleep 15
         
        pid=`ps -ef|grep $project_name|grep -v grep|awk '{print $2}'`
         
        if [ -n "$pid" ];
     
            then
             
            {
         
                echo "======to kill the tomcat pid $pid========"
                 
                kill -9 $pid
                 
                sleep 3
                 
            }
             
        fi
         
        echo "==========start tomcat============"
         
        $tomcat_path/startup.sh
         
    }
    

fi

 

备注:

           project_name 就是我们通过 ps -ef|grep project_name 能得到单一的一个我们需要杀掉的因为tomcat而启动的java的jdk进程。

           tomcat_path就是服务器上tomcat的bin目录的具体路径。

 

2.脚本调试

脚本写好了之后,我们先调试是否可执行,我是放在tomcat 的bin目录下,所以先来走一波拿到进程号

Contos7下tomcat定时重启实现

好的,可以获取到,那我们直接跑脚本。

sh bin/tomcat_restart.sh

查看tomcat的日志发现正在重启了,中间也没有异常,这就OK了。

 

3.定时任务

如果想让脚本定时执行,我们只需要利用crontab

命令参数,此处列举常用部分,具体参见https://www.cnblogs.com/intval/p/5763929.html

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

编辑任务内容

crontab -e

Contos7下tomcat定时重启实现

由于我的需求是每日凌晨执行这两个脚本,此处的含义是每日2-01执行tomcat1的重启脚本、每日2-30执行tomcat2的重启脚本,基本的语法格式就是这样了,如果有复杂的需求请自行查阅资料。

:wq保存后,我们可以输入crontab -l查看任务是否被放置到了 crontab

Contos7下tomcat定时重启实现

OK,已经添加成功。

启动定时服务:

service crond stop

service crond start

service crond status查看状态

Contos7下tomcat定时重启实现

OK,到这里需求就解决了

技术改变生活^∨^