本章内容以CentOS 6.4   和   CentOS  7.6  两个版本为例。[6和7的命令不同]

=====================CentOS 6.4===================

步骤:

一.创建脚本文件,本脚本文件用于停止,重启tomcat运行的java进程,并设置脚本文件权限

1.新建脚本文件tomcat.sh

【注意文件创建的路径】

【查看当前路径的命令:   pwd】

创建文件命令:

vi tomcat.sh

2.粘贴脚本文件文本内容到文件中:

【注意,标红部分需要自己修改为自己服务器上的对应地址】

【查看linux服务器上JAVA_HOME命令:  echo $JAVA_HOME 】

【关键一行:

ps -ef|grep java | grep catalina | awk '{print $2}

可以准确定位到当前正在tomcat下启动运行的java进程,而不是安装的java,参考地址:https://www.cnblogs.com/sxdcgaq8080/p/10734752.html

#!/bin/bash
. /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre tomcatPath="/backup/tomcat7"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
pid=`ps -ef|grep java | grep catalina | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]正在运行的tomcat进程为:$pid"
echo "[info][$(date +'%F %H:%M:%S')]tomcat已经启动,准备使用shutdown命令关闭..."
$binPath"/shutdown.sh"
sleep 2
pid=`ps -ef|grep java | grep catalina | awk '{print $2}'`
if [ -n "$pid" ]; then
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭失败,准备kill进程..."
kill -9 $pid
echo "[info][$(date +'%F %H:%M:%S')]kill进程完毕!"
sleep 1
else
echo "[info][$(date +'%F %H:%M:%S')]使用shutdown命令关闭成功!"
fi
else
echo "[info][$(date +'%F %H:%M:%S')]tomcat未启动!"
fi
echo "[info][$(date +'%F %H:%M:%S')]准备启动tomcat..."
$binPath"/startup.sh"

3.修改脚本文件tomcat.sh 可操作权限

命令:

chmod 777 tomcat.sh

二.修改定时任务配置,添加本脚本到定时任务配置中,启动定时任务

1.修改定时任务配置

命令:

crontab -e

将上面的脚本文件路径,以及定时任务配置粘贴到配置文件中:

58 10  * * * /backup/tomcat7/tomcat.sh

【本配置说明:  每天10:58分   执行脚本文件,脚本文件路径在:/backup/tomcat7/tomcat.sh】

【关于定时任务的配置说明,请自行查阅】

【最后要说明的一点:本命令操作与vi操作文本命令一样】

2.操作定时任务

关闭定时任务命令:

service crond stop

启动定时任务命令:

service crond start

重启定时任务命令:

service crond restart

查看定时任务列表:

crontab -l

查看定时任务执行日志:

tail -f -n 200 /var/spool/mail/root

3.查看tomcat下运行的java进程是否已经重启

查看命令:

ps -ef|grep java

可以从下图看到,正在运行的新的java进程是在10:58 启动的【说明java进程重启成功】

CentOS 6 使用cron定时任务,报错:Redirecting to /bin/systemctl restart crond.service

可以查询下面的CentOS 7 使用cron定时任务相关操作。

========================CentOS  7.6=======================

一.cron任务的自启动相关命令

1.检测cron定时服务是否自启用

systemctl is-enabled crond.service

结果展示如下:

enable表示已启用自启动
disable标识未启用自启动

2.如果未启用,则开启cron自启用

systemctl enable crond.service

3.如果已经启用,想要cron关闭自启动

systemctl disable crond.service

附录:

linux系统自带服务的启动文件和状态

二.cron服务是否启动相关命令【区别于自启动】

1.查看cron服务的启动状态

[只有cron的状态是active  running的,才表示cron服务是启动的]

systemctl status crond.service

2.启动cron服务[命令没有提示]

systemctl start crond.service

3.停止cron服务[命令没有提示]

systemctl stop crond.service

4.重启cron服务[命令没有提示]

systemctl restart crond.service

5.重新加载cron服务[命令没有提示]

systemctl reload crond.service

三.操作定时任务

1.定时任务的编辑

crontab -e

编辑内容和centos6 一样。表示每天7.30  执行 /mnt/apps/tomcat/tomcat.sh 路径下的脚本

30 07  * * * /mnt/apps/tomcat/tomcat.sh

如果在上面,已经把定时任务cron启动了,编辑定时任务后,会有提示

2.查看已编辑的定时任务

crontab -l

3.删除已编辑的所有定时任务

crontab -r

四.查看定时任务的执行日志

1.查看cron执行日志

tail -f -n 200 /var/log/cron

五.最后总结

如上述命令,整个cron操作步骤如下

1>编辑了.sh脚本,并保存,记录.sh文件所在路径【一定确保.sh脚本可用,可以尝试在编辑完成.sh文件后,直接./tomcat.sh  执行脚本文件,查看是否可以正常执行】

2>查看并设置cron为自启动

3>查看并启动cron服务,使状态为running

4>编辑并查看cron服务,注意路径和定时格式,确保cron服务编辑成功

5>最后在编辑完成cron服务后,重新加载或重启cron服务,确保cron服务状态是running的

6>最后可以通过查看cron执行日志,确保cron是否执行

7>如果cron任务不执行,确保linux服务器系统 时间 和时区 是否正常

六.cron任务不执行,问题排查

如上,已经确保  第五点中所有 步骤都正确执行了。但是cron定时任务一直没有执行。

我这里出现的原因,是因为服务器的时区设置不正确。

正确的时区应该是

CST

如果你的时区是

UTC

或者其他,就导致时间和时区不正确。

我设置的定时任务是17.05执行,结果等到了17.05,定时任务不执行,因为此刻的系统时间是05.05

解决方法:

https://www.cnblogs.com/sxdcgaq8080/p/11155232.html

=================================================

参考地址:

https://blog.csdn.net/abcdad/article/details/69239249

定时启动开启后,无效解决方案:

https://blog.csdn.net/zxc_user/article/details/82634370

【linux】【tomcat】linux下定时重启tomcat的更多相关文章

  1. 【linux】【tomcat】linux下定时重启tomcat 【CentOS 6.4】【CentOS 7.6】

    本章内容以CentOS 6.4   和   CentOS  7.6  两个版本为例.[6和7的命令不同] 转载 :https://www.cnblogs.com/sxdcgaq8080/p/10730 ...

  2. linux下定时重启tomcat

    工具/原料 linux tomcat 方法/步骤 编写tomcat_shutdown.sh: #!/bin/sh export JAVA_HOME=/home/oracle/jdk1..0_67/ e ...

  3. linux定时重启tomcat服务的脚本学习

    要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...

  4. Linux 定时重启 Tomcat、重启Keepalived

    1.在 tomcat 目录新建一个.sh 文件: vi restartTomcat.sh 2.输入内容: #!/bin/bash# author: Linnuo # date: -- # Filena ...

  5. Linux每天定时重启Tomcat服务

    1:查看crond 服务状态(确认Linux任务计划服务开启) service crond status crond (pid  1937) is running... 2:编写重启Tomcat的sh ...

  6. 定时重启tomcat

    写个简单的定时重启,弄了一上午,主要是crontab里面奇怪 #!/bin/bash p=`ps -ef |grep tomcat |head -n 1|awk -F" " '{p ...

  7. linux系统定时重启tomcat

    #touch auto-start.sh [root@Linux opt]# echo $LANGen_US.UTF-8 #vim auto-start.sh #!/bin/sh export LAN ...

  8. Linux 启动、停止、重启tomcat工具(Shell脚本)

    1.   启动 #!/bin/bash pids=`ps -ef | grep java | grep -w tomcat | awk '{print $2}'` #pids=`ps -ef | gr ...

  9. 使用shell脚本定时重启tomcat服务

    #!/bin/bash DATE=`date +%Y-%m-%d-%H-%M-%S` echo "当前时间是:$DATE" # 根据端口号查找进程 PID=`/usr/sbin/l ...

随机推荐

  1. Orchard是如何工作的?

    文章翻译自http://docs.orchardproject.net/Documentation/How-Orchard-works 对Orchard的理解还不深刻,翻译可能有不好的地方.     ...

  2. Codeforces 311D Interval Cubing 数学 + 线段树 (看题解)

    Interval Cubing 这种数学题谁顶得住啊. 因为 (3 ^ 48) % (mod - 1)为 1 , 所以48个一个循环节, 用线段树直接维护. #include<bits/stdc ...

  3. Python 面向对象1-面向对象介绍

    一.无论用什么形式来编程,我们都要明确记住以下原则: 1.写重复代码是非常不好的低级行为 2.你写的代码需要经常变更,写代码一定要遵循易读,易改的原则 3.函数编程与OOP(面向对象)的主要区别就是O ...

  4. Java中常见的排序方式-快速排序(升序)

    [基本思想] 快速排序在元素较多的情况下,排序效率是相当高的.其基本思想是这样: 假设数组为int[] arr = { 49, 38, 65, 97, 76, 13, 27, 22, 26, 41, ...

  5. oracle授权表权限给用户

    命令:grant  xxx权限 on Table to USERgrant select,insert,update,delete,all on 表名 to 用户名例如:将test表的查询权限赋予to ...

  6. python自带进程池

    注意:必须加 close() 和 join(),且 close 必须在 join 之前 代码: import multiprocessing #执行方法 def func(*args,**kwargs ...

  7. Codeforces 208A-Dubstep(字符串)

    Vasya works as a DJ in the best Berland nightclub, and he often uses dubstep music in his performanc ...

  8. springboot2 config_toolkit 并且设置全局获取数据GlobalUtil

    本文只贴相关代码段,完整代码请移步至本人github,若是喜欢,可以star给予支持 作者:cnJun 博客专栏: https://www.cnblogs.com/cnJun/ 本文实现目标 重要的配 ...

  9. XamarinAndroid组件教程设置自定义子元素动画(二)

    XamarinAndroid组件教程设置自定义子元素动画(二) (9)打开MainActivity.cs文件,为RecylerView的子元素设置添加和删除时的透明动画效果.代码如下: …… usin ...

  10. python 3.6 + numpy + matplotlib + opencv + scipy 安装

    首先,下载并安装 python3.6: 然后,在网址http://www.lfd.uci.edu/~gohlke/pythonlibs/ 上 分别下载 numpy.scipy.matplotlib.o ...