Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



公司用的一键部署脚本

#!/bin/bash
DST='/usr/local/tomcat/'    //目标文件路径,为已经在运行,等待替换的文件路径
SRC='/home/username/newdeployment'   //源文件目录,为最新上传的文件
BACKUP='/home/username/olddeployment'  //备份文件路径,为替换文件的备份路径
nowdate=$(date +%Y%m%d)  //定义备份日期
 
//判断源文件是否存在,如果不存在则退出脚本,如果存在则继续执行,此步骤是为了防止误执行此脚本导致现运行的文件被删。
if  [ ! -f "$SRC/test.war" ];then
   echo "$SRC/test.war not exist"
   exit 1
fi
 
//判断目标文件是否存在,如果不存在则退出脚本,如果存在则继续执行,此步骤是为了防止误操作导致tomcat被关闭。

if [ ! -d "$DST/webapps/" ];then
   echo "$DST not exist"
   exit 1
fi
 
//如果上面条件全部满足,则强制kill掉tomcat进程
echo 'stoping tomcat.....'
    ps aux |grep tomcat |grep -v grep |awk '{print $2}' |xargs kill -9

//删除目标文件,并且将目标文件之前的war包备份到指定目录,删除缓存文件
echo 'remove and backup relative files and directories'
    rm -rf $DST/webapps/test
    mv  $DST/webapps/test.war $BACKUP/test_$nowdate.war
    rm -rf $DST/work/Catalina/localhost/test
 
//将源文件复制到目标目录,删除源文件war包。
echo 'deploy new version file: test.war'
    cp -f $SRC/test.war $DST/webapps/
    rm -f $SRC/test.war
 
//重新启动tomcat
echo 'starting tomcat.....'
    /usr/local/tomcat/bin/startup.sh

 

浏览918  评论0  niko于 2015-3-6 11:47
发言