自动化部署脚本

第一版

1、杀死原进程
2、备份旧包
3、复制新包到指定目录
4、启动服务

#!/bin/sh
#杀死原进程
pid=`ps -aux | grep airwrite_server-0.0.1-SNAPSHOT.jar|grep -v grep| awk '{print $2}'`
if [ -n "$pid" ]
  then
  kill -9 $pid
  echo "杀死进程[$pid]成功"
else
   echo "未找到指定进程"
fi
#备份旧包
#创建旧包目录
dirName=/opt/old/$(date +%Y%m%d)
mkdir $dirName
mv /opt/airwrite_server-0.0.1-SNAPSHOT.jar $dirName
echo "备份旧包成功"
#复制新包到指定位置
mv /opt/new/airwrite_server-0.0.1-SNAPSHOT.jar /opt
echo "移动新包成功"
#切换到/opt目录下
cd /opt
#启动服务
nohup java -jar airwrite_server-0.0.1-SNAPSHOT.jar > ./airwrite_server.out 2>&1 &
echo "启动服务成功"

第二版

1、创建旧包目录时先判断是否存在

#!/bin/sh
#杀死原进程
pid=`ps -aux | grep airwrite_server-0.0.1-SNAPSHOT.jar|grep -v grep| awk '{print $2}'`
if [ -n "$pid" ]
  then
  kill -9 $pid
  echo "杀死进程[$pid]成功"
else
   echo "未找到指定进程"
fi
#备份旧包
#创建旧包目录
dirName=/opt/old/$(date +%Y%m%d)
#判断目录是否存在
if [ ! -d $dirName ];then
mkdir $dirName
echo "创建备份目录成功"
else
echo "备份目录已经存在"
fi
#备份文件
mv -f /opt/airwrite_server-0.0.1-SNAPSHOT.jar $dirName
echo "备份旧包成功"
#复制新包到指定位置
mv /opt/new/airwrite_server-0.0.1-SNAPSHOT.jar /opt
echo "移动新包成功"
#切换到/opt目录下
cd /opt
#启动服务
nohup java -jar airwrite_server-0.0.1-SNAPSHOT.jar > ./airwrite_server.out 2>&1 &
echo "启动服务成功"

第三版:

1、备份父目录不存在时自动创建

#!/bin/sh
#杀死原进程
pid=`ps -aux | grep airwrite_server-0.0.1-SNAPSHOT.jar|grep -v grep| awk '{print $2}'`
if [ -n "$pid" ]
  then
  kill -9 $pid
  echo "杀死进程[$pid]成功"
else
   echo "未找到指定进程"
fi
#备份旧包
#创建旧包目录
dirName=/opt/old/$(date +%Y%m%d)
#判断目录是否存在
if [ ! -d $dirName ];then
mkdir -p $dirName
echo "创建备份目录成功"
else
echo "备份目录已经存在"
fi
#备份文件
mv -f /opt/airwrite_server-0.0.1-SNAPSHOT.jar $dirName
echo "备份旧包成功"
#复制新包到指定位置
mv /opt/new/airwrite_server-0.0.1-SNAPSHOT.jar /opt
echo "移动新包成功"
#切换到/opt目录下
cd /opt
#启动服务
nohup java -jar airwrite_server-0.0.1-SNAPSHOT.jar > ./airwrite_server.out 2>&1 &
echo "启动服务成功"