``` #!/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 ```