tomcat发布脚本
#!/bin/bash
#发布相关目录
Tomcat_log='/home/CodePub/tomcatlog'
dev_package='/home/CodePub/package'
old_package='/home/CodePub/oldpackage'
tomcat_dir='/home/zoumi/youximao/tomcat' #修改
tomcat_start_dir='/home/zoumi/youximao/tomcat/bin' #修改
Mysqllog='/home/CodePub/mysqllogs'
Mysqlbackup='/home/CodePub/Mysqlbackup'
cd /home #可能需要更改
if [ -d CodePub ];then
if [ ! -d tomcatlog ]
then
mkdir tomcatlog
chmod 775 tomcatlog
fi
if [ ! -d package ]
then
mkdir package
chmod 775 package
fi
if [ ! -d oldpackage ]
then
mkdir oldpackage
chmod 775
fi
if [ ! -d mysqllogs ]
then
mkdir mysqllogs
chmod 775 mysqllogs
fi
else
mkdir CodePub
chmod 775 CodePub
cd /home/CodePub #可能需要更改
mkdir tomcatlog package oldpackage mysqllogs
chmod 775 tomcatlog package oldpackage mysqllogs
fi
#用户需要修改的参数 数据库连接参数
User='root'
Port='3306'
Passwd='123456'
Time="$(date +"%Y%m%d%H%M%S")"
echo "please input update or return"
echo "update input 1"
echo "return input 2"
read -p "please input release type :" type
update(){
$tomcat_start_dir/shutdown.sh &> /dev/null;sleep 5
process="$(ps aux | grep tomcat | grep "$tomcat_start_dir" | awk '{print $2}')"
for ps in $process
do
if [ -n "$ps" ];then
kill -9 $ps
fi
done
redis="$(ps aux | grep redis | grep "/usr/local/bin/" | awk '{print $2}')"
for RD in $redis
do
kill -9 $RD
done
cd $tomcat_dir
tar -zcpvPf $old_package/$Time.tar.gz $tomcat_dir/webapps/* >> $Tomcat_log/tomcat-tar-$Time.log
echo "Input new develop package"
read -p "please input package_name:" package_name
echo "Input new database script"
read -p "please input script_name:" script_name
if [ -n "$script_name" ]
then
echo "----------开始执行数据库脚本文件----------"
mysql -u $User -P $Port -p$Passwd -Bse 'source /home/zoumi/'$script_name'' > $Mysqllog/mysql-$Time.log
echo "-----------截取Tomcat启动日志50S-----------"
fi
yes | cp -fr /home/zoumi/$package_name $tomcat_dir/webapps/ #发布包目录位置,可能需要修改
$tomcat_start_dir/startup.sh
tail -f $tomcat_dir/logs/catalina.out > $Tomcat_log/tomcat-up-$Time.log &
sleep 50
taps="$(ps aux | grep tail | grep "$tomcat_dir/logs/catalina.out" | awk '{print $2}')"
if [ -n "$taps" ];then
kill -9 $taps
fi
/usr/local/bin/redis-server --port 6379 &
/usr/local/bin/redis-server --port 8888 &
# cat $Tomcat_log/tomcat-up-$Time.log | grep "error"
}
Return(){
$tomcat_start_dir/shutdown.sh &> /dev/null
read -p "please input this yasuo oldpackage" ago_package
tar -zxPf $old_package/$ago_package -C /home/zoumi/youximao/tomcat/webapps/
/home/zoumi/youximao/tomcat/bin/startup.sh >> /home/tomcat-oldup-$Time.log
cat $Tomcat_log/tomcat-oldup-$Time.log | grep "error"
}
case "$type" in
"1")
update
;;
"2")
Return
;;
*)
echo "Input error!"
esac
exit 0
tomcat发布脚本的更多相关文章
- 自己写的一个tomcat发布脚本
闲来无事,就自己写一个shell脚本,方便自己以后在服务器上部署tomcat下的项目.我本地用maven打包,然后每次都要人工去切换一堆堆目录,有点繁琐,所以我写了下面的shell脚本. #! /bi ...
- 大型项目linux自动化版本发布脚本(shell)之tomcat、nginx服务脚本
开发十年,就只剩下这套Java开发体系了 >>> 最近,又临近博主所负责的一个大型项目的发版了.之前有提到过,该项目涉及到30-40台服务器的发版.且项目客户规定发版需在晚上10 ...
- linux 配置 tomcat 自动发布脚本
首先将打包好的 war 包(举例 management-20160809-1.0.war),传到 tomcat 的 webapps 目录下,然后在 tomcat 目录下新建 deploy.sh 脚本. ...
- svn-maven-tomcat自动发布脚本
#!/bin/sh #svn-maven-tomcat自动发布脚本 #变量设置 svnpath=svn://10.60.10.120/研发部/xx-maven svnusername=xxx svnp ...
- 【教程】IDEA创建Maven项目并整合Tomcat发布,问题解决大全
一篇入门教程 一.创建项目并运行 参考这个视频,能顺利运行 helloworld ,本人用的 IDEA2020.2.3 .jdk11 .Tomcat9 .Maven3.6 bilibili-IDEA( ...
- 100个Shell脚本——【脚本3】tomcat启动脚本
[脚本3]tomcat启动脚本 一.脚本tomcatd.sh #!/bin/bash # chkconfig:2345 64 36 # description: Tomcat start/stop/r ...
- Tomcat重启脚本restart.sh停止脚本stop.sh
Tomcat重启脚本restart.sh停止脚本stop.sh Tomcat本身提供了 startup.sh(启动)shutdown.sh(关闭)脚本,我们在部署中经常会出现死进程形象,无法杀掉进程需 ...
- Tomcat启动脚本
记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...
- Eclipse修改Tomcat发布路径以及的配置多个Tomcat方法
最近放弃了使用Myeclipse,转而使用eclipse作为开发工具,确实Myeclipse集成了太多东西,使得开发人员的配置越来越少,这 不是个好事,使用eclipse后,有些地方就得自己去配置,比 ...
随机推荐
- 常用快捷键: From Eclipse to Android Studio
Eclipse: ctrl+shift+L查看所有快捷键 alt+shift+r 重命名 ctrl+shift+F 格式化代码 alt+shift+s 添加未实现方法 alt+/ 代码助手提示 ct ...
- document封装一些常用的方法
/** * 批量修改元素样式 */ function css(domObj,styleArry){ for(var i=0;i<styleArry.length;i++){ domObj.sty ...
- Anaconda 用于科学计算的 Python 发行版
用于科学计算的 Python 发行版: 1.Anaconda https://www.continuum.io/ 公司continuum. 有商业版本. Anaconda is the le ...
- Android issues
1. Android studio 2.0 Error:Exception in thread "main" java.lang.UnsupportedClassVersionEr ...
- Redis的入门及注意事项
1.redis简介 Remote Dictionary Server Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中, ...
- struts2笔记(3)
关于回显: 如果是int型,默认就会回显为0,如果不想让回显,则Integer就好 //**************************************声明式验证************* ...
- IIS性能提升
1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queu ...
- Riemann映射定理
单复变函数几何理论最高的成就我想应该属于Riemann映射定理吧! Riemann映射定理:$\mathbb C$中任意边界多余一个点的单连通域$D$都与单位圆盘$B(0,1)$等价,即存在着$D$上 ...
- 跨域AJAX的实现
跨域 当试图从一个域向另一个域发起请求时 jsonp html中所有带src属性的标签都可以跨域,如:script,img,iframe 可以通过script加载其它域的一段动态脚本,这段脚本包含 ...
- 【转】理解 PHP 依赖注入 | Laravel IoC容器
Laravel框架的依赖注入确实很强大,并且通过容器实现依赖注入可以有选择性的加载需要的服务,减少初始化框架的开销,下面是我在网上看到的一个帖子,写的很好拿来与大家分享,文章从开始按照传统的类设计数据 ...