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

要求:在linux中定时重启一个tomcat服务

一:shell脚本即Shell Script [1],Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

以上来源于百度百科

其实,说白了脚本就是融合了shell语法的命令集合体,我们可以通过执行一个.sh脚本文件,来达到执行多个命令的目的

二:以下是一个重启的实例(不了解shell基本语法的可以先了解一下)

a. 在你需要重启的项目的同级目录,新建一个.sh文件:[root@mufeng ~]# touch restartTomcat.sh

或者使用vi命令: [root@mufeng ~]# vi restartTomcat.sh

我的项目是在root下,当然你可以在任何地方建此文件,不过这样看起来更加明了,结构清楚。

下边是其中具体内容:

#!/bin/bash

#author: mufeng

#date: --

#Filename: restartTomcat.sh

#Description: 重启tomcat服务

#声明环境变量,可重复使用

export LANG=zh_CN.UTF-

export JAVA_HOME=/usr/local/java/jdk1..0_161

export JRE_HOME=${JAVA_HOME}/jre

export TOMCAT_HOME=/root/myWebsite

#输出开始时间

echo "[$(date +'%F %T')] >>> Tomcat begin to restart."

#关闭tomcat服务

${TOMCAT_HOME}/bin/shutdown.sh

# Kill all remaining processes 杀掉所有残留进程,不杀掉会占用系统资源

pidList=$(ps aux | grep ${TOMCAT_HOME} | grep -v grep | awk '{print $2}')

if [ "${pidList}" != "" ]

then

echo "残留的进程号:${pidList}";

for pid in $pidList; do

kill - $pid

echo "[$(date +'%F %T')] >>> Kill the process [$pid] successfully."

done

else

echo "无 残留的进程号";

fi

#启动tomcat服务

${TOMCAT_HOME}/bin/startup.sh

#获取重新启动后的tomcat服务的进程号

pidList2=$(ps aux | grep ${TOMCAT_HOME} | grep -v grep | awk '{print $2}')

if [ "${pidList2}" != "" ]

then

echo "启动后的进程号:${pidList2}";

echo "[$(date +'%F %T')] >>> Tomcat restart complete."

echo -e "本次tomcat成功重启 \n\n"

else

echo "本次tomcat服务启动出错,请查看/logs/catalina.out日志文件"

fi

注意,1. 声明的环境变量中,JAVA_HOME后边对应的是你自己的jdk路径

2. 声明的环境变量中,TOMCAT_HOME后边对应的是你自己的项目路径

3. 每次在执行完shutdown.sh命令后,需杀死残留进程,然后再启动服务,这点非常重要。因为残留进程会侵占越来越多的系统资源,甚至重启后都无法正常访问项目

4. 不要全部复制上边的内容,执行时第一行可能会报错:-bash: ./restartTomcat.sh: /bin/bash  : bad interpreter: No such file or directory

b. 保存内容(:wq 保存退出),为此文件赋予执行权限:

[root@mufeng ~]# chmod +x restartTomcat.sh

c. 测试执行:[root@mufeng ~]# ./restartTomcat.sh

执行结果如下图:

ae6914f7a92009e983e5a5b2fe60885a.png

d. 查看tomcat服务是否启动成功:[root@mufeng ~]# ps -ef|grep tomcat

51d26d0c64a77ae23e879f4e678c8ae0.png

三:配置linux定时任务crond

以上脚本,可以手动执行,来重启服务,但如果想让其定期自动执行,则还需要配置定时任务crond

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

打开定时任务的系统配置文件:[root@mufeng ~]# vi /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# For details see man crontabs

# Example of job definition:

# .---------------- minute ( - )

# | .------------- hour ( - )

# | | .---------- day of month ( - )

# | | | .------- month ( - ) OR jan,feb,mar,apr ...

# | | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

# */ * * * wed root /root/restartTomcat.sh >> /root/restartLog.txt

最下边一行,是我添加的自己的定时任务(需要执行时,去掉前边的注释“#”)

*/1  *  *  *  wed  代表 每个星期三,每隔一分钟执行一次

root         代表 root用户

/root/restartTomcat.sh  代表 要执行的脚本路径

>>        代表 执行信息的输出位置

/root/restartLog.txt  代表 执行信息存放的文件名

保存退出后,系统自动读取加载,隔一分钟,会看见root目录下多了个存放执行信息的文件restartLog.txt

查看里边的内容如下:

887ae93c715761c370ccdda18b88e532.png

友情提醒:测试完毕,记得注释掉加入的定时配置,不然,你的restartLog.txt文件会越来越大

“*”代表取值范围内的所有数字,

“/”代表”每”,如每2分钟:*/2

“-”代表从某个数字到某个数字,

“,”分开几个离散的数字

至此,linux中tomcat服务定时重启的功能完成;

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 ...

Linux下重启多个 tomcat 服务的脚本

由于修改tomcat的配置文件或手动操作数据库数据后,tomcat的缓存和redis的缓存很严重,需要经常重启tomcat来释放缓存,经常就是手动重启. # .查找tomcat的进程ID ps -ef ...

linux系统下重启tomcat的shell脚本

linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...

【linux】【tomcat】linux下定时重启tomcat

步骤: 一.创建脚本文件,本脚本文件用于停止,重启tomcat运行的java进程,并设置脚本文件权限 1.新建脚本文件tomcat.sh [注意文件创建的路径] [查看当前路径的命令:   pwd] ...

【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 ...

systemd 编写服务管理脚本---学习

转载:https://www.cnblogs.com/sparkdev/p/8521812.html 我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql.web serve ...

linux下重启tomcat、实时查看tomcat运行日志

在Linux系统下,重启Tomcat使用命令操作的! 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看 ...

Linux系统重启network服务失败

问题描述 使用KVM通过修改配置文件配置好网卡IP,使用命令行service network restart 重启网络服务失败. 如图: 使用图形化管理工具配置IP,在系统界面右上角可以看到网卡状态为 ...

随机推荐

selenium使用过程中遇到的“element not visiable”错误

PS:本博客selenium分类不会记载selenium打开浏览器,定位元素,操作页面元素,切换到iframe,处理alter.confirm和prompt对话框这些在网上随处可见的信息:本博客此分类 ...

FreeCAD鼠标操作指南

鼠标控制模式 跳转至: 导航. 搜索 freeCAD鼠标的控制模式由多个命令构成,用于三维空间的视觉导航和控制显示对象.freecad支持多个鼠标导航方式.默认的导航方式是被称为“CAD导航”,非常简 ...

Linq To Sql多表联合查询

var pro = (from ps in db.ProductInfoes join pt in db.ProductTypees on ps.productType equals pt.pType ...

修改UIBarButtonItem字体大小、颜色等相关属性

在ios中如果想修改UIBarButtonItem里面的内容有很多种方法,常见的就是自定义contentView  但是有时候因为懒不想自定义只想在原来的文字上进行修改 如果只是修改UIBarButt ...

linux环境下安装php扩展

本文只提供源码安装的方法(已安装pcntl为例) 其他方法请参考:http://doc3.workerman.net/appendices/install-extension.html 1.利用php ...

DelphiXE 显示GIF动画

DelphiXE可以直接显示GIF动画,不需要第三方控件的支持.只要引用GifImg单元即可. uses GIFImg; procedure TForm1.FormCreate(Sender: TOb ...

android 设置默认启动network mode

network mode常见类型 WCDMA preferred : 0 GSM only : 1 WCDMA only : 2 GSM UMTS : 3 CDMA : 4 ... (参考RILCon ...

[转载] ZooKeeper原理及使用

转载自http://www.wuzesheng.com/?p=2609 ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordina ...

Android 获取View的高度或TextView的行数, 实现自适应的textview

大家都遇到过项目中需要获控件的的高度或者列如文章开头说TextView的行数 但是很多人在实际操作中getLineCount()获取到值是零,其实只是我们没在正确的位置获取. 这是因为activtiy ...

leetcode — word-ladder

import java.util.*; /** * Source : https://oj.leetcode.com/problems/word-ladder/ * * * Given two wor ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值