平台前端文件的升级与回滚(shell 脚本)

平台前端文件的升级与回滚

  • 平时工作时不时需要替换正式和内测环境的前端文件,服务器通过堡垒机登录,可上传文件到 /tmp 目录,而且有多个平台路径,所以编写以下脚本,用于工作
#!/bin/bash
# author: zhangsx
# info: 平台前端文件升级回滚脚本
DATE=$(date +%Y%m%d_%H%M%S)
TEST01=/data/html01                 # 平台前端文件根目录
TEST02=/data/html02         
TEST03=/data/html03                
TEST04=/data/html04          

fileif(){                       # 判断文件是否上传
cd /tmp/dist &>/dev/null         
if [ $? -eq 0 ];then
continue
else
echo "请先传入文件到临时目录!"
exit
fi
}
update(){
sudo mv dist dist_$DATE &>/dev/null         # 升级操作
sudo mv /tmp/dist . &>/dev/null    
}

file(){
backfile1=`ls -t |awk 'NR==1'`  # 按照修改时间排序,并截取第一个文件
backfile2=`ls -t |awk 'NR==2'`  # 按照修改时间排序,并截取第二个文件
}

rollback(){
sudo mv $backfile1 failed_file$DATE    # 回滚操作
sudo mv $backfile2 dist
}
input_pt(){                            # 获取输入平台
if [ $pt = "test01" ];then
cd $TEST01
elif [ $pt = "test02" ];then
cd $TEST02
elif [ $pt = "test03" ];then
cd $TEST03
elif [ $pt = "test04" ];then
cd $TEST04
else
echo "失败输入,提示:[ test 01| test02  | test03 | test04 ]"
exit
fi
}

read -p "请选择执行需求(输入序号) 1.升级,2.回滚:" i           # 获取执行操作
case $i in                                           
"1")
fileif
read -p "请输入升级平台:" pt     # 获取用户输入平台
input_pt
update
sleep 2
echo "当前升级路径:" 
pwd
echo "升级完成!"
;;
"2")
read -p "请输入回滚平台:" pt    
input_pt
file
rollback
sleep 2
echo "当前回滚路径:"
pwd
echo "回滚完成!"
;;
esac

# 使用注意不可连续回滚两次及以上

猜你喜欢

转载自blog.csdn.net/qq_45075198/article/details/107512819
今日推荐