数据库备份脚本shell

#!/bin/bash  
#----------------------------
#Target machine configuration
#----------------------------
#DBUser->Database user name
#DBPasswd->Database password ,not null
#DBName->Database name
#SERVER->IP address
#----------------------------
DBUser=****
DBPasswd=****
DBName=*****
SERVER=****


#--------------------------------
#The local machine configuration
#--------------------------------
#LocalDBUser->Database user name
#LocalDBPasswd->Database password,not null
#LocalDBName->Database name
#BackupPath->Backup path,end with '/'
#LogFile->Log file
#num->backup numbers
#--------------------------------
LocalDBUser=**
LocalDBPasswd=***
LocalDBName=****
BackupPath=****
LogFile=****
#num=2 -----> Has not been completed
#-------------------------------

#-------------------------------
#Other configuration
#-------------------------------
#IgnoreTables->ignore tables,like this:
#IgnoreTables= '--ignore-table=DBName.TableName1 --ignore-table=DBName.TableName2 .....'
#NeedTables->need backup tables,if you want to backup all tables,please let it empty
#like this: NeedTables='table1 table2 table3'
#-------------------------------
IgnoreTables='****‘ 
NeedTables=
#begin


NewFile="$BackupPath"dbBackup$(date +%y%m%d).sql  
OldFile="$BackupPath"dbBackup$(date +%y%m%d --date='5 days ago').sql 

echo "-------------------------------------------" >> $LogFile  
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile  
echo $(date +%y%m%d --date='5 days ago') >>$LogFile
echo "--------------------------" >> $LogFile  
#Delete Old File
if [ -f $OldFile ]  
then  
   rm -f $OldFile >> $LogFile 2>&1  
   echo "[$OldFile]Delete Old File Success!" >> $LogFile  
else  
   echo "[$OldFile]No Old Backup File!" >> $LogFile  
fi  
if [ -f $NewFile ]  
then  
   echo "[$NewFile]The Backup File is exists,Can’t Backup!" >> $LogFile 
   echo "Begin ro recover the data...."  
   mysql -u$LocalDBUser -p$LocalDBPasswd --default-character-set='utf8' $LocalDBName <$NewFile
   echo "Data has been restored!" >>$LogFile
else  
	mysqldump -h$SERVER -u$DBUser -p$DBPasswd --default-character-set='utf8' --quick --single-transaction  $DBName  $NeedTables    $IgnoreTables  >$NewFile
    echo "[$NewFile]Backup Success!" >> $LogFile  
fi
echo "-------------------------------------------"
echo



原文地址:https://www.cnblogs.com/chenjianhong/p/4145053.html