Linux定时启动tomcat服务

前言:

最近公司遇到一个问题,用户在使用过程中会出现数据卡顿、加载缓慢。通过初步排查可能服务器配置低,运行内存不够造成的。于是想到一个办法,通过定时启动服务来试试,综合评估发现还可以效果还可以。

1.创建tomcat.sh脚本

 #!/bin/bash
 . /etc/profile
tomcatPath="/u01/apache-tomcat-7.0.104"
binPath="$tomcatPath/bin"
echo "[info][$(date +'%F %H:%M:%S')]正在监控tomcat,路径:$tomcatPath"
pid=`ps -ef | grep tomcat | grep -w $tomcatPath | grep -v 'grep' | 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 tomcat | grep -w $tomcatPath | grep -v 'grep' | 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"

注:tomcatPath="/u01/apache-tomcat-7.0.104"   tomcatPath="你的tomcat路径"

脚本的逻辑比较简单,先查看tomcat进程是否存在,如果不存在则直接调用startup.sh命令启动tomcat,如果tomcat的进程存在则调用shutdown.sh命令停掉tomcat服务,有时会关闭失败,所以在检查一下tomcat进程时候还存在,如果存在就使用kill命令杀掉该进程,然后启动tomcat。

tomcat.sh

2.修改文件权限

执行命令:

chmod 777 tomcat.sh

3、建立定时任务

1.在控制台输入

crontab -e 命令进入编辑crontab脚本,按键盘i进入编辑状态:

选择vim编辑器编辑就可,在文件后面增加一条任务。(我的脚本文件路径是:/u01/tomcat.sh)
说明:这里tomcat.sh为编写好的脚步文件

1.在编辑文档下添加定时内容 

2.按   ":wq" 保存后,需要重新启动定时器

  1.阿里云重启命令:

sudo service cron restart

2.redhat Linux重启命令为:

/sbin/service crond restart

 

最后没报错,就说明命令启动成功了,如果是设置一分钟启动一次,我们去找到对应的日志文件目录,看看服务是否重启成功。

4.知识补充

定时任务描述语法
crontab中每一个定时任务的格式由6部分组成,分别是分钟、小时、天、月、星期以及命令,前5部分用来配置任务触发时机,中间使用空格隔开,如下:
minute hour day month dayofweek command

minute – 表示分钟,值的范围是从0到59的整数 
hour – 表示小时,值的范围是从0到23的整数 
day – 表示天,值的范围是从1到31的整数
month – 表示月,值的范围是从1到12的整数
dayofweek – 表示星期,值的范围是从0到6的整数 (0表示周日)
command – 需要执行的命令(/home/script/tomcat.sh > /home/script/shlog.txt表示执行tomcat.sh脚本,并且把结果日志打印到shlo.txt中)
 时间部分除了使用估计数字以外还可以配合星号(*),逗号(,),斜杠(/),横杠(-)组合来表示其他意义。

1. 星号(*)
表示任意值,比如:

30 01 * * * command #每天的1:30执行命令
2. 逗号(,)
表示指定的时间,比如:

30 01 1,10,20 * * command #每月的1号、10号、20号的1:30分执行命令
3. 斜杠(/)
表示每隔多长时间,比如:

* */2 * * * command #每个2小时执行一次命令
4. 横杠(-)
表示连续时间,比如:

* 1-7/1 * * * command #凌晨1点-7点之前每隔一小时执行一次命令

最后感谢作者:http://www.luoxudong.com/?p=330

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值