Shell脚本自动重启Java服务
话不多说直接上代码:
cd /home/javaProduct/
if [ -d '/home/javaProduct/lib_new/' ]; then
echo 'Has New Lib!'
echo '--------------Begin Stop JavaService----------------'
edocid=$(jps |grep JavaService | awk '{print $1}')
echo $edocid
kill -9 $edocid
echo '--------------Begin Move Lib------------------------'
mv /home/javaProduct/lib/ /home/javaProduct/lib_prev
echo '--------------End Move Lib--------------------------'
echo '--------------Begin Move Lib_New--------------------'
mv /home/javaProduct/lib_new/ /home/javaProduct/lib/
echo '--------------End Move Lib_New----------------------'
echo '--------------Begin Start Service-------------------'
nohup ./appServer.sh start
echo '--------------End Start Service---------------------'
echo '--------------Begin Move Lib_Prev-------------------'
time2=$(date "+%Y%m%d%H%M%S")
hislib1='/home/javaProduct/lib_'
hislib2=$hislib1$time2
mv /home/javaProduct/lib_prev/ $hislib2
echo '--------------End Move Lib_Prev---------------------'
echo '--------------End Stop JavaService------------------'
else
echo 'No Lib_New'
fi
另外这里还要提到dos2unix来将windows编写shell脚本转换为Linux的,要不上传上去不能用。
由于在DOS(windows系统)下,文本文件的换行符为CRLF,而在Linux下换行符为LF,使用git进行代码管理时,git会自动进行CRLF和LF之间的转换,这个我们不用操心。而有时候,我们需要将windows下的文件上传到linux上,例如shell脚本,执行的时候有时会出现奇怪的问题,这时候,就需要安装dos2unix软件,centos下:
yum install -y dos2unix
安装完成后,对文件进行转换
dos2unix abc.sh
现在执行就不会出问题了
补充,自动重启Tomcat的脚本
cd /home/edocProduct/tomcat/bin
if [ -f "/home/edocProduct/tomcat/webapps/ROOT.war.new" ]; then
echo "Has New War!"
echo "------------Begin Stop Tomcat---------------"
for i in $(ps -ef|grep tomcat | awk '{print $3"+"$2}');
do
if [ ${i%+*} = "" ]; then
echo $i
echo ${i#*+}
kill - ${i#*+}
echo "---------------------Begin Move ROOT.war-----------------------"
mv /home/edocProduct/tomcat/webapps/ROOT.war /home/edocProduct/tomcat/webapps/ROOT.war.prev
echo "---------------------End Move ROOT.war-------------------------"
echo "---------------------Begin Move ROOT.war.new-------------------"
mv /home/edocProduct/tomcat/webapps/ROOT.war.new /home/edocProduct/tomcat/webapps/ROOT.war
echo "---------------------End Move ROOT.war.new---------------------"
echo "---------------------Begin Start Tomcat------------------------"
nohup ./startup.sh
echo "---------------------End Start Tomcat--------------------------"
echo "---------------------Begin Move ROOT.prev----------------------"
time2=$(date "+%Y%m%d%H%M%S")
hislib1='/home/edocProduct/tomcat/webapps/ROOT.war'
hislib2=$hislib1$time2
mv /home/edocProduct/tomcat/webapps/ROOT.war.prev $hislib2
echo "---------------------End Move ROOT.war.prev--------------------"
echo "---------------------End Stop Tomcat---------------------------"
fi
done;
else
echo 'No ROOT.war.new'
fi
Shell脚本自动重启Java服务的更多相关文章
- Java web 应用自启动 shell脚本自动重启
之前公司的内部管理系统jenkins自动构建代码有时候会失效,导致服务停掉. 于是乎就搞了一个自动启动脚本. oa.jar就是监测的服务 startup.sh 的内容是运行jar包的命令 java - ...
- 使用shell脚本定时重启tomcat服务
#!/bin/bash DATE=`date +%Y-%m-%d-%H-%M-%S` echo "当前时间是:$DATE" # 根据端口号查找进程 PID=`/usr/sbin/l ...
- CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存
CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存来自:互联网 时间:2020-03-22 阅读:114以下情况可能造成Linux内存占用过高服务配置存在直接分配错误,或隐性分 ...
- 使用 shell 脚本自动获取发版指标数据
问题背景 大一点的公司都会建立一套规章流程来避免低级错误,例如合入代码前必需经过同行评审:上线前必需提测且通过 QA 验证:全量前必需经过 1%.5%.10%.20%.50% 的灰度过程.尤其是最后一 ...
- shell脚本自动清理服务器日志、图片等信息
在做性能测试的时候,linux服务器时常会产生大量数据,如日志信息,图片信息,文件信息等,压测一段时间后,导致服务器磁盘空间暂满而崩溃,每天手动清理比较麻烦, 利用shell脚本自动清理,脚本如下 1 ...
- shell 脚本自动插入文件头
vim编辑shell脚本自动插入文件头部信息,将下面的代码写入home目录xia .vimrc 文件即可. shell 文件头: 1 autocmd BufNewFile *.sh exec &quo ...
- linux可运行的shell脚本与设置开机服务启动(自己总结)
完整的ln命令参考:http://www.runoob.com/linux/linux-comm-ln.html ln :创建连接文件 - 默认创建的是硬连接,好比复制 ,但是两个文件会同步 命令:l ...
- Git学习-->如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?
一.背景 在我之前的博客 git学习--> Gitlab如何进行备份恢复与迁移? (地址:http://blog.csdn.net/ouyang_peng/article/details/770 ...
- shell脚本自动拉起启动程序
一.我们先看看编写的shell脚本的内容,该shell的作用主要是实现监控某个程序崩溃之后就自动重启该进程. while true do procnum=` ps -ef|grep "tes ...
随机推荐
- kubernetes-安装Helm
Helm是什么? Helm可以管理Kubernetes应用程序-Helm Charts帮助您定义,安装和升级最复杂的Kubernetes应用程序. 下载Helm 在https://github.com ...
- 【HICP Gauss】数据库 数据库高级语法(数据类型函数)-3
SQL高级语法:整型: integer 2(-31) ~2(31)-1 4字节 intger unsigned 2(0)~2(32)-1 4字节 bigint 2(-63)~2(63)-1 8字节 ...
- IDEA实用教程(九)—— 创建Servlet
4. 创建Servlet 1) 第一步 2) 第二步 3) 第三步 4) 第四步 由于新创建的Web项目, 没有Tomcat环境, 所以创建的Servlet会发生导包错误,如下图所示 : 因此我们需要 ...
- 【转】An introduction to using and visualizing channels in Go
An introduction to using and visualizing channels in Go 原文:https://www.sohamkamani.com/blog/2017/08/ ...
- Route all trafic for specific ip over specific network interface
15 I have a linux server that needs to get some routing. I'm fairly new at this and i don't find any ...
- JQuery系列(1) - 选择器、构造函数、实例方法
概述 JQuery是一个JavaScript库,jQuery的核心思想是“先选中某些网页元素,然后对其进行某种处理”(find something, do something),也就是说,先选择后处理 ...
- Spring源码窥探之:ImportSelector
1. 编写实现ImportSelector的类 /** * @author 70KG * @Title: SelectImportBean * @Description: * @date 2018/7 ...
- 要求用Windows下批处理和Linux下的shell脚本完成,两文本交替输出
两个短文件 两个空文件 一空一短 两长
- 最新新浪长连接转为短连接的API与请求示例
新浪短网址api是新浪官方对外公开的长链接转为短链接的API,可以将冗长的链接地址缩短生成 t.cn/xxx 格式的短链接. API有两种格式 http://lnurl.cn/sina/short-a ...
- mysql5.7的手动安装
1.安装必要的组件 | yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ li ...