时间:2017年03月21日星期二web
说明:本脚本并非彻底的自动部署,只是优化基于Tomcat部署项目流程。优势:下降部署难度、减小出错概率、提升部署效率、自动备份项目。segmentfault
在编写自动发布脚本以前,需先安装Tomcat。传送门:https://segmentfault.com/a/11...tomcat
人工发布与自动发布流程对比bash
已配置好一个Tomcat服务器,命名为Web应用名称服务器
建立目录结构以下app
Demo --hello --bin --log --lib --webapp --…… --deploy --helloBak --helloFtp
Hello:Web应用Tomcat服务器
Deploy:自动发布目录
HelloBak:项目备份目录
HelloFtp:项目上传目录webapp
#!/bin/bash # @describe 基于Tomcat自动发布脚本 # @author ZhangCheng # @date 2017-03-21 # @version V1.0 # mkdir bak DATE=$(date +%Y%m%d)-$(date +%H%M) mkdir /home/zc/demo/deploy/helloBak/$DATE echo "一、建立备份目录完毕" # kill tomcat ps -ef |grep 'hello' |grep -v grep|awk '{print $2}'|xargs kill -9 echo "二、杀掉进程执行完毕" # backup project cp /home/zc/demo/hello/webapps/hello.war /home/zc/demo/deploy/helloBak/$DATE echo "三、原包文件备份完毕" # clean tomcat webapp rm -r /home/zc/demo/hello/webapps/hello* echo "四、清理原包文件完毕" #deploy project cp /home/zc/demo/deploy/helloFtp/hello.war /home/zc/demo/hello/webapps/ echo "五、拷贝新包文件完毕" #start tomcat sh /home/zc/demo/hello/bin/startup.sh echo "六、从新启动进程完毕"
说明:依据具体环境,将目录路径及项目名更改便可。可使用pwd命令,查看当前目录路径。优化
特别提示:Linux系统不一样,可能存在差别。本脚本基于CentOS release 6.7版本系统。网站
将自动发布脚本上传到deploy目录,并命名为helloDeploy.shspa
给该脚本受权,使其具有可执行权限
chmod +x ./helloDeploy.sh
上传项目升级包到helloFtp目录
执行脚本
查看备份文件
访问网站