使用git方式更新还原代码脚本

  • 因为工作需要,需要使用shell通过git来更新还原代码
#/bin/bash
CURRENTTIME=`date +%Y%m%d%H%M`
ADMINDIR=/data/develop/hicoopay/admin/
ADMINBACKUPDIR=/root/backup/admin/

ADSDIR=/data/develop/hicoopay/ads/
ADSBACKUPDIR=/root/backup/ads/

update_admin(){
    [ ! -d ${ADMINBACKUPDIR} ] && mkdir -p ${ADMINBACKUPDIR}
    rsync -avz  --exclude=runtime/logs ${ADMINDIR}  ${ADMINBACKUPDIR}${CURRENTTIME}
    cd ${ADMINDIR}
    git checkout . && git pull
}

update_ads(){
    [ ! -d ${ADSBACKUPDIR} ] && mkdir -p ${ADSBACKUPDIR}
    rsync -avz  --exclude=storage/logs ${ADSDIR}  ${ADSBACKUPDIR}${CURRENTTIME}
    cd ${ADSDIR}
    git checkout . && git pull
}

rollback_admin(){
    echo -e "\033[33m 选择你需要还原的日期  :  \033[0m"
    select var in `ls ${ADMINBACKUPDIR}`
    do
        rsync -avz  --delete --exclude=runtime/logs ${ADMINBACKUPDIR}${var}/ ${ADMINDIR} 
        exit
    done
}

rollback_ads(){
    echo -e "\033[33m 选择你需要还原的日期  :  \033[0m"
    select var in `ls ${ADSBACKUPDIR}`
    do
        rsync -avz  --delete --exclude=storage/logs ${ADSBACKUPDIR}${var}/ ${ADSDIR} 
        exit
    done
}

admin(){
    echo -e "\033[32m 选择你是要更新还是回滚  :  \033[0m"
    select i in "update" "rollback" "Exit"
    do 
        case $i in
        "update")
            update_admin
            exit
            ;;
        "rollback")
            rollback_admin
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please choose 1 || 2 || 3"
            ;;
        esac
    done 
}

ads(){
    echo -e "\033[32m 选择你是要更新还是回滚  :  \033[0m"
    select i in "update" "rollback" "Exit"
    do 
        case $i in
        "update")
            update_ads
            exit
            ;;
        "rollback")
            rollback_ads
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please choose 1 || 2 || 3"
            ;;
        esac
    done 
}

echo -e "\033[32m 选择你需要操作的项目  :  \033[0m"
select var in "admin" "ads" "Exit"
do
    case $var in
        "admin")
            admin
            exit
            ;;
        "ads")
            ads
            exit
            ;;
        "Exit")
            exit
            ;;
        *)
            echo "Please chose 1 || 2 || 3 "
            ;;
    esac
done