平台前端文件的升级与回滚
- 平时工作时不时需要替换正式和内测环境的前端文件,服务器通过堡垒机登录,可上传文件到 /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
# 使用注意不可连续回滚两次及以上