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

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

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

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 | grep -E '^dist*' | awk 'NR==1'`  # 按照修改时间排序,并截取第一个文件
backfile2=`ls -t | grep -E '^dist*' | 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

# 使用注意不可连续回滚两次及以上
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个备份回滚脚本的示例,它可以备份指定目录下的文件,并在需要时还原到之前的备份版本。 ```bash #!/bin/bash # 定义备份目录 BACKUP_DIR="/backup" # 定义需要备份的目录 SOURCE_DIR="/var/www/html" # 获取当前时间作为备份文件名 TIMESTAMP=$(date +%Y-%m-%d-%H%M%S) BACKUP_FILE="$BACKUP_DIR/backup-$TIMESTAMP.tar.gz" # 备份指定目录 tar -czvf "$BACKUP_FILE" "$SOURCE_DIR" # 打印备份文件名 echo "Backup created: $BACKUP_FILE" # 定义还原函数 rollback() { # 获取最新备份文件名 LAST_BACKUP=$(ls -t "$BACKUP_DIR" | head -1) # 检查备份目录是否为空 if [ -z "$LAST_BACKUP" ]; then echo "No backup found." exit 1 fi # 解压备份文件到指定目录 tar -xzvf "$BACKUP_DIR/$LAST_BACKUP" -C "$SOURCE_DIR" # 打印还原成功消息 echo "Rollback to backup: $LAST_BACKUP" } # 如果第一个参数为 "rollback",则执行还原函数 if [ "$1" = "rollback" ]; then rollback fi ``` 该脚本首先定义了备份目录和需要备份的目录,并使用 `tar` 命令备份了指定目录。备份文件名使用当前时间戳生成,并打印了备份文件名。 在需要还原备份的情况下,脚本会执行名为 `rollback` 的函数。该函数会获取最新备份文件名,并使用 `tar` 命令将其解压缩到指定目录。解压缩完成后,打印还原成功的消息。 最后,脚本检查第一个参数是否为 "rollback",如果是,则执行还原函数。如果不是,则只进行备份操作。 你可以将该脚本保存为一个文件,比如 `backup.sh`,并通过 `./backup.sh` 命令来执行备份操作。如果需要还原备份,则可以使用 `./backup.sh rollback` 命令来还原最新备份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值