Docs/shell/回滚/rollback.sh.md
2022-10-18 16:59:37 +08:00

1.4 KiB

#!/bin/bash

# Edit by ZeroC
# Date 2017/11/08

## 需要调用/data/script/rsync/rsync_server_to_remote.sh

serverlist=("admin" "api" "bases" "capital" "contract" "fullscale" "orders" "others" "pc" "products" "repayment" "scan" "swoole" "sysaccount" "transaction" "trusteeship" "users")
dir=/data/htdocs/v
rollbackdate=`date +%Y-%m-%d`
now=`date +%Y-%m-%d-%H-%M`
sourcedir=/data/backup/$rollbackdate

Listdir()
{
	dir=`echo $1|tr '[:upper:]' '[:lower:]'`
	list=`ls $sourcedir| grep $server`
	echo -e "\033[31;1m$dir:\033[0m"
	for l in $list;do
		echo -e "\t\033[32;1m$i\033[0m"
	done
}

Action()
{
	server=$1
	backupdir=$2
	# localhost : ( backup --> serverdir )
	/usr/bin/rsync -a $sourcedir/$backupdir $dir/
	# ( localhost : serverdir ) --> ( remote : server )
	echo -e "\033[31;1mExecute the script (rsync_server_to_remote.sh) to RollBack the $server now ...\033[0m"
	# 调用/data/script/rsync/rsync_server_to_remote.sh执行更新
	(echo "$server" && echo "")| /bin/bash /data/script/rsync/rsync_server_to_remote.sh
}

RollBack()
{
	echo -e "\033[31;1mThe Server You Can Choose\033[0m"
	for server in ${serverlist[@]};do
		echo -e "\t\033[32;1m$server\033[0m"
	done
	read -p "Your Choice:" server
	echo -e "\033[31;1mThe Backup of The $server:\033[0m"
	Listdir $server
	read -p "Choose The Backup Which You Want To RollBack [default $server]:" choice
	: ${choice:="$server"}
	Action $server $choice
}

RollBack