백업 데이터베이스 셸 스 크 립 트 두 개
                                            
 3781 단어  백업 데이터베이스
                    
#!/bin/bash
#       shell
#            
bakdir=/backup
month=`date +%m`
day=`date +%d`
year=`date +%Y`
hour=`date +%k`
min=`date +%M`
dirname=$year-$month-$day-$hour-$min
mkdir $bakdir/$dirname
mkdir $bakdir/$dirname/conf
mkdir $bakdir/$dirname/web
mkdir $bakdir/$dirname/db
#      
cp /opt/mysql/my.cnf $bakdir/$dirname/db/my.cnf
cd /opt/mysql
mysqldump --opt -u zhy -p --password=1986 test>$bakdir/$dirname/db/test.sql
mysqldump --opt -u zhy -p --password=1986 phpwind>$bakdir/$dirname/db/phpwind.sql
#             
scp -r /backup/$dirname [email protected]:/backup
[plain]
#!/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 "      "