Docs/shell/备份/bashup_sh.sh.md
2022-10-18 16:59:37 +08:00

2.2 KiB

#!/bin/bash

#上海银行存管系统备份
# Edit by ZeroC
# Date 2017/11/07

serverlist=("admin" "api" "bases" "capital" "contract" "fullscale" "orders" "others" "pc" "products" "repayment" "scan" "swoole" "sysaccount" "transaction" "trusteeship" "users")
dir=/data/htdocs/v
backupdate=`date +%Y-%m-%d`
now=`date +%Y%m%d%H%M`
weekago=`date -d 'a week ago' +%Y-%m-%d`
backupdir=/data/backup/$backupdate
packagedir=/data/backup/$weekago
logdir=/data/logs/backup/$backupdate

if [ ! -d $backupdate ];then
	mkdir -p $backupdir
fi

if [ ! -d $logdir ];then
	mkdir -p $logdir
fi

Backup()
{
	server=`echo $1|tr '[:upper:]' '[:lower:]'`
	cd $dir
	if [ $server == 'all' ];then
		for name in ${serverlist[*]};do
			echo "Backup $name at $now ..."  >> $logdir/$name
			if [ ! -d "$backupdir/$name" ];then
				/usr/bin/rsync -a $dir/$name/ $backupdir/$name  >> $logdir/$name
			else
				/usr/bin/rsync -a $dir/$name/ $backupdir/$name-$now  >> $logdir/$name
			fi
			echo -e "----------End----------\n" >> $logdir/$name
			cat $logdir/$name
		done
	else
		if [[ ${serverlist[@]} =~ $server ]];then
			echo "Backup $server at $now ..."  >> $logdir/$server
			if [ ! -d "$backupdir/$server" ];then
				/usr/bin/rsync -a $dir/$server/ $backupdir/$server  >> $logdir/$server
			else
				/usr/bin/rsync -a $dir/$server/ $backupdir/$server-$now  >> $logdir/$server
			fi
			echo -e "----------End----------\n" >>$logdir/$server
			cat $logdir/$server
		else
			echo "Wrong ServerName!"
		fi
	fi
}

Package()
{
	if [ -d $packagedir ];then
		cd /data/backup
		echo "-------------------" >> $logdir/package-$backupdate
		tar zcvf $weekago-$now.tar.gz $weekago --remove-files >> $logdir/package-$backupdate
	else
		echo "-------------------" >> $logdir/package-$backupdate
		echo "Not Backup at $backupdate or Package already !" >> $logdir/package-$backupdate
	fi
}

if [ $# -eq 0 ];then
	sc=$0
	echo -e "\t\033[32;1m++++++++++server list++++++++++\033[0m"
	for i in ${serverlist[*]};do
		echo -e "\t\t\033[33;1m$i\033[0m"
	done
	echo -e "\t\t\033[33;1mall [以上所有]\033[0m"
	read -p "The server[default all]:" server
	: 
	Backup $server
	Package
elif [ $# -eq 1 ];then
	Backup $1
	Package
else
	echo -e "Stupid behavior !!"
fi