saltstack+git+rsync自动上线,回退

本文介绍了一种用于自动部署及回滚的Shell脚本实现方案。该脚本可以根据不同的域名参数执行相应的部署操作,并提供了自动备份及权限设置等功能。此外,还提供了一个配套的回滚脚本,用于快速恢复到之前的版本状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.自动上线脚本
#!/bin/bash
    case $1 in
        "www") MOD=www;;
        "ask") MOD=ask;;
        "smm") MOD=smm;;
        "crm") MOD=crm;;
	
    esac
DOMAIN=$1
if [ -n "$MOD" ] ;then
    DOMAIN=$MOD
else
    echo "Error:Ccommand error,this branch didn‘t exist!"
    exit
fi

logname=`date '+%Y%m%d%H%M'`
    cp -a /data/www/lepu/"$DOMAIN" /data/operations/backup/web-backup/${DOMAIN}-backup/$DOMAIN.$logname 
    chown -R www-data:www-data /data/operations/backup/web-backup/${DOMAIN}-backup/$DOMAIN.$logname 
    echo $DOMAIN

    cd /data/NAS/git/"$DOMAIN"/
    git pull
    rsync -avH  ./* /data/www/lepu/"$DOMAIN"

    chown -R www-data:www-data /data/www/lepu/"$DOMAIN"/*
    chmod -R 775 /data/www/lepu/"$DOMAIN"/*

#if [ "www" = "$1" ] ; then
#    echo "<?php define('CSS_VERSION', md5('$logname'));" > /data/www/lepu/wwwCommon/Conf/defineauto.php
#fi
echo "rollback command: sh rollback.sh "$DOMAIN"" $logname

2.自动回退脚本

#!/bin/bash
    case $1 in
        "www") MOD=www;;
        "ask") MOD=ask;;
        "smm") MOD=smm;;
    esac
DOMAIN=$1
if [ -n "$MOD" ] ;then
    DOMAIN=$MOD
else
    echo -e "\033[47;31;1mError:This param don't exist!\033[0m"
    exit
fi
cp -a /data/operations/backup/web-backup/${DOMAIN}-backup/$DOMAIN.$2/*  /data/www/lepu/$DOMAIN
if [ $? -eq 0 ] ;
        then
        echo -e "\033[47;31;5mRollback $DOMAIN.$2 to /data/www/lepu/$DOMAIN/ finished!\033[0m"
else
        echo -e "\033[46;37;5mRollback is Failure!!!!!!!!\033[0m"
fi

1. 上线前的备份工作: 按日期生成上线记录文件夹 文件结构目录和正式环境保持一致 备份你所涉及到的修改文件 2. 上线前的准备工作: 把你修改到的patch文件 到 PATCH_ROOT 目录中 文件结构目录和正式环境保持一致 3. 上线工作: diff -r -b 比较 备份环境 和 发布环境 文件差异; 再次确定修改是否正确 PATCH_ROOT 下的文件夹和文件 发布到正式环境 即可; 完成上线后,要检查系统功能是否正确。 4. 回滚工作: BAK_ROOT 下的文件夹和文件 回滚到正式环境 即可 ; 完成回滚后 要检查系统功能是否正确回滚。 5. shell脚本功能: === 参数配置 ===: #指定正式环境的路径 正式环境的文件 WEB_ROOT=/var/www/html echo ${WEB_ROOT} #指定发布环境的路径 发布环境的文件 PAT_ROOT=/home/chenlong/blog echo ${PAT_ROOT} #指定发布管理日志的路径 记录发布过程,完成文件备份和文件patch PUB_ROOT=/home/chenlong/Publish === 使用方法 ===: #./apply.sh blog /home/chenlong/patch_sh/list20100520.txt 例如 -bash-3.2$ ./apply.sh blog /home/chenlong/patch_sh/list20100520.txt /var/www/html /home/chenlong/blog /home/chenlong/Publish blog /home/chenlong/patch_sh/list20100520.txt /home/chenlong/patch_sh === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/upload_editor.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/upload_editor.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak /bin/cp /var/www/html/BM/Tpl/default/Admin/Img/index.php /home/chenlong/Publish/blog/2010-05-21/bak/var/www/html/BM/Tpl/default/Admin/Img/index.php === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch /bin/cp /home/chenlong/blog/wp-includes/js/common.js /home/chenlong/Publish/blog/2010-05-21/patch/home/chenlong/blog/wp-includes/js/common.js === cmd === :/home/chenlong/patch_sh/apply_cp.sh /home/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值