【linux】【tomcat】linux下定时重启tomcat 【CentOS 6.4】【CentOS 7.6】
本章内容以CentOS 6.4 和 CentOS 7.6 两个版本为例。[6和7的命令不同]
转载 :https://www.cnblogs.com/sxdcgaq8080/p/10730633.html
很幸运看见这篇文章,很详细!
=====================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


附录:
二.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 【CentOS 6.4】【CentOS 7.6】的更多相关文章
- 【linux】【tomcat】linux下定时重启tomcat
步骤: 一.创建脚本文件,本脚本文件用于停止,重启tomcat运行的java进程,并设置脚本文件权限 1.新建脚本文件tomcat.sh [注意文件创建的路径] [查看当前路径的命令: pwd] ...
- linux下定时重启tomcat
工具/原料 linux tomcat 方法/步骤 编写tomcat_shutdown.sh: #!/bin/sh export JAVA_HOME=/home/oracle/jdk1..0_67/ e ...
- linux定时重启tomcat服务的脚本学习
要求:在linux中定时重启一个tomcat服务 一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便 ...
- Linux 定时重启 Tomcat、重启Keepalived
1.在 tomcat 目录新建一个.sh 文件: vi restartTomcat.sh 2.输入内容: #!/bin/bash# author: Linnuo # date: -- # Filena ...
- Linux每天定时重启Tomcat服务
1:查看crond 服务状态(确认Linux任务计划服务开启) service crond status crond (pid 1937) is running... 2:编写重启Tomcat的sh ...
- 定时重启tomcat
写个简单的定时重启,弄了一上午,主要是crontab里面奇怪 #!/bin/bash p=`ps -ef |grep tomcat |head -n 1|awk -F" " '{p ...
- linux系统定时重启tomcat
#touch auto-start.sh [root@Linux opt]# echo $LANGen_US.UTF-8 #vim auto-start.sh #!/bin/sh export LAN ...
- Linux 启动、停止、重启tomcat工具(Shell脚本)
1. 启动 #!/bin/bash pids=`ps -ef | grep java | grep -w tomcat | awk '{print $2}'` #pids=`ps -ef | gr ...
- 使用shell脚本定时重启tomcat服务
#!/bin/bash DATE=`date +%Y-%m-%d-%H-%M-%S` echo "当前时间是:$DATE" # 根据端口号查找进程 PID=`/usr/sbin/l ...
随机推荐
- 小白学 Python 数据分析(15):数据可视化概述
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- Mysql(Mariadb)数据库之Information Schema 库中GLOBAL_VARIABLES表 and SESSION_VARIABLES 表分析
Information Schema GLOBAL_VARIABLES and SESSION_VARIABLES Tables The Information Schema GLOBAL_VARIA ...
- opt目录
在linux环境测试时,会部署到/opt目录下,这是为何呢? 下面来详解Linux的/opt目录: /opt:用户级的程序目录 这里主要存放那些可选的程序. 比如,你想部署firefox测试版,那就装 ...
- 求你了,别再说Java对象都是在堆内存上分配空间的了!
Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解.可以说,关于JVM的相关知识,基本是每个Java开发者 ...
- Spring教程检视阅读
Spring教程检视阅读 地址 可供参考的教程 <菜鸟学 SSH> <Spring Boot 那些事> <初识 Spring Security> <Sprin ...
- 吐血干货,直播首屏耗时400ms以下的优化实践
导读: 直播行业的竞争越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验.最近在帮做直播优化首开,通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴. 背景: ...
- (转)协议森林13 9527 (DNS协议)
协议森林13 9527 (DNS协议) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在周星驰的电影<唐伯虎点秋香> ...
- Code Index: 基于Lucene.Net的代码检索工具
目录 用途 Github地址 示例 特性 用途 维护一个拥有巨大代码量的项目, 依靠自带的代码搜索工具搜索速度缓慢, 一个快速的代码检索工具就显得极为必要, 所以自己撸了个小工具. Github地址 ...
- Zetatier One 基本用法
Zetatier One 基本用法 ZeroTier One是用加密的点对点技术将处于不同物理位置的网络建立私人的局域网,即使用软件实现路由和交换机功能,而且它能使用WEB控制台管理网络,是对SDN( ...
- 【问题记录】记一次ConnectionTimeout问题排查
最近做性能测试时,发现连接第三方系统时会有约1%的交易提示如下错误 nested exception is org.apache.commons.httpclient.ConnectTimeoutEx ...