linux系统定时重启tomcat

时间:2021-09-16 11:15:14

#touch auto-start.sh 

[root@Linux opt]# echo $LANG
en_US.UTF-8

#vim auto-start.sh

#!/bin/sh

  export LANG="en_US.UTF-8"   设置编码格式,不然日志会出现中文字符显示乱码情况crontab启动的任务没有获取系统的环境变量,导致中文乱码
解决办法:
   在执行的脚步中添加编码方式或者添加对应的环境变量
  export JAVA_HOME=/usr/java/jdk1.7.0_21/       //如果不选择这个语句,项目可能不能自行启动报错,提示无法加载到java_home的运行环境

linux系统定时重启tomcat

pid=`ps aux | grep tomcat_ezttv | grep -v grep | grep -v retomcat | awk '{print $2}'`     //这步grep要设置成具体项目名称,如果单纯设置tomcat整个服务器tomcat项目都会关闭
echo $pid                                                                                                                    //输出pid内容

if [ -n "$pid" ]
then
{
   echo ===========shutdown================ 
   /usr/local/tomcat_ezttv/bin/shutdown.sh
   sleep 1
   pid=`ps aux | grep tomcat_ezttv | grep -v grep | grep -v retomcat | awk '{print $2}'`
   if [ -n "$pid" ]
   then
    {
      sleep 1
      echo ========kill tomcat==============   
      kill -9 $pid
    }
   fi
   sleep 1
   echo ===========startup.sh============== 
   /usr/local/tomcat_ezttv/bin/startup.sh
 }
else
echo ===========startup.sh============== 
/usr/local/tomcat_ezttv/bin/startup.sh

fi

脚本设置chmod +x auto-start.sh  添加执行权限

启动crontab的权限

service crond start 启动服务

service crond status 服务crontab 启动的状态

#crontab -e

05 11 * * 4 /opt/auto-start.sh>>/opt/auto.log      

设置定点启动时,需要设置分钟  00 05  代表5点的意思

4指周四   星期从0算起

分、时、日、月、星期     执行脚本>>输出日志

下面是crontab的格式;

 分<>时<>日<>月<>星期<>要运行的命令

 其中<>表示空格

#cat auto.log

20488
===========shutdown================
========kill tomcat==============
===========startup.sh==============

 

第1列分钟1~5 9
第2列小时1~2 3(0表示子夜)
第3列日1~3 1
第4列月1~1 2
第5列星期0~6(0表示星期天)
第6列要运行的命令

 

在这些域中,用横杆 - 来表示一个时间范围,如星期一至星期五某个动作,星期域就用1-5来表示

               还可以用,隔开两个时间断,如星期一和星期四,星期域用1,4表示

               可以用*来表示连续的时间断,如果某个时间域没有特别的限定,也可以用*填入

                该文件的每一个条目必须含有5个时间域,而且每个时间域之间用 空格 分隔

                该文件的所有注释行要在行首用#来表示

 

-crontab条目举例

 30 21 * * * /apps/bin/cleanup.sh      表示每晚的21:30运行/apps/bin 目录下的cleanup.sh

 0,30 18-23 * * * /apps/bin/dbcheck.sh   每天的18:00 至 23:00之间运行/apps/bin目录下的d'b'che'c'k.sh

 


45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。
0 23 * * 6 /apps/bin/qtrend.sh
上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h。
你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l
脚本时,要由用户来给出脚本的绝对路径,设置相应的环境变量。记住,既然是用户向c r o n
提交了这些作业,就要向c r o n提供所需的全部环境。

 

 

当使用crontab 运行shell脚步时,要由用户来给出脚步的绝对路径,设置相应的环境变量。

如果cron不能运行相应的脚步,用户将会收到一个邮件说明其中的原因。

 

-crontab命令选项

crontab命令的一般形式:

crontab [-u user] -e -l -r

其中:

     -u  用户名

     -e  编辑crontab文件

     -l   列出crontab文件内容

     -r  删除crontab文件