zoukankan      html  css  js  c++  java
  • 【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

    附录:

    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

  • 相关阅读:
    夺命雷公狗-----React---12--添加类和样式
    夺命雷公狗-----React---11--添加css样式的方法
    夺命雷公狗-----React---10--组建嵌套进行数据遍历
    夺命雷公狗-----React---9--map数据的遍历
    夺命雷公狗-----React---8--react官方提供的组建实现双向绑定
    夺命雷公狗-----React---7--组建的状态props和state
    夺命雷公狗-----React---6--props多属性的传递
    夺命雷公狗-----React---5--props对象的传递
    夺命雷公狗-----React---4--props变量的传递
    夺命雷公狗-----React---3--标签的规则
  • 原文地址:https://www.cnblogs.com/xiaokangk/p/11733994.html
Copyright © 2011-2022 走看看