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 ...
随机推荐
- ansible之基础篇(三)
setup ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ansible_date_tim ...
- error: invalid-first-character-of-tag-name错误解决方案
HTML 特殊字符写法要用原始码,例如: ‘<’ 原始码为 < ‘>’ 原始码为 > 解决示例: 原错误代码 <div><</div> 修改后代码 ...
- linux系统编程之文件与io(三)
上次我们利用文件的read和write来实现了简易的cp命令,其中将源文件拷贝到目标文件时,我们给目标文件的权限是写死的,而非根据源文件的权限生成的,如下: 今天就来解决这个问题,来学习获取文件权限相 ...
- 开源项目阅读笔记--appium+adb
git上搜了几个platform的代码,有一个项目给我感触挺深的. https://github.com/ThomasHansson/Appium-cross-platform-example/tre ...
- keras模块学习之泛型模型学习笔记
本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! Keras泛型模型接口是: 用户定义多输出模型.非循环有向模型或具有共享层的模型等复杂模型的途径 适用于实现:全连接网络和多输入 ...
- myeclipse常用快捷键和小技巧
常用快捷键: Ctrl + Shift + R 在整个项目中查找文件 Ctrl + H 查找文件,可以限定文件中包含的内容 Ctrl + Shift + G 查找一个方法在哪里被调用 Ctrl + O ...
- 接口中的JSON报文
原始报文: 请求报文: [ { "appNo" : "", "applicantCredentialCode" : "" ...
- LightOJ - 1246 - Colorful Board(DP)
链接: https://vjudge.net/problem/LightOJ-1246 题意: You are given a rectangular board. You are asked to ...
- 013——MATLAB硬件支持包离线下载
(一)参考文献:https://blog.csdn.net/hyperorbit/article/details/88095384 (二)去下列网址下载离线包下载工具:https://ww2.math ...
- img src防缓存
//加时间戳防缓存 var imgurl = "/pcms/headImg/${sessionScope.accountInfo.accountId}_cut.jpg?time=" ...