自动化部署脚本
第一版
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 "启动服务成功"