mysql多方式自动备份脚本(mysqldump,mydumper,xtrabackup)











 

 #!/bin/ 
 export PATH=/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/ export LANG= 
  ROOT=/data/bw_mon/ LOG=$ROOT/ RUN=$ROOT/ LOCAL_DATA=$ROOT/ CONF=$ROOT/ _ErrLog=$Log/ 
 # tag 
 RUN_TAG=$RUN/ 
 # log 
 LOG0=$LOG/bw_mysqlbk.log ; LOG1=$LOG0. ; LOG2=$LOG0. ; LOG3=$LOG0.
 nowtime=` +%Y%m%d_%H% delnowtime=` -d   +%Y%m%d_%H% xtrabackcmdlog=$LOG/ xtrabackcmddellog=$LOG/ [[ -f $xtrabackcmddellog  ]] ||  - # define temp 
 MAIL_TMP=$RUN/ 
  MAIL_TITLE=
 Week=$( +% Bindir=$LOCAL_DATA/bin- 
 # read configuration   [[  -f $CONF/bw_mysqlbk.conf && -f $CONF/ 
     . $CONF/     . $CONF/ 
          
     exit 
 
 
  datef() {   print_to_log() {   >> print_to_mail() {   >> print_file_to_mail() {  $ >> append_mail_title() { MAIL_TITLE= 
     [[ $telphonesms ==   ]] ;
 
                 /usr/local/bin/sendsmspost.pl     app_backup     $IP_ADDR==$Now===$content=backup--faild!
                 /usr/local/bin/sendsmspost.pl     app_backup     $IP_ADDR==$Now===$content=backup--faild!
                 /usr/local/bin/sendsmspost.pl     app_backup     $IP_ADDR==$Now===$content=backup--faild!
                 /usr/local/bin/sendsmspost.pl      app_backup     $IP_ADDR==$Now===$content=backup--faild!
                 /usr/local/bin/sendsmspost.pl      app_backup     $IP_ADDR==$Now===$content=backup--faild!
                 /usr/local/bin/sendsmspost.pl     app_backup     $IP_ADDR==$Now===$content=backup--faild!
  
  
  
  
    binif=$(mysql -u ${Usr} -p${Pwd}  -e  --batch  |   |  Datedir=$(mysql -u ${Usr} -p${Pwd}  -e  --batch |    |  binlogfile=`mysql -u ${Usr} -p${Pwd}  -e  --batch    | -v  |   [[ $binif ==   ]];
   i  
 
 [[ -d $Bindir/$BACKUP_SERIAL   ]] ||  -p $Bindir/ 
  Delbindir=` $Bindir -type d -name $Bindelday*  [[  -d $Delbindir  ]] ; 
    -  print_to_log 
  
 
 desdir=$Bindir/  
 
     [ $? -ne       
         content=
       print_to_log 
      
      print_to_log 
      
 
 
 
 
 
  
 print_to_log 
 
 
 
  
 
 #前期判断主机名/       print_to_log 
 
     # get 
     HOST_NAME=$( |  -F      
     # get ip address, only consider eth0, eth0:      iface  eth0 eth0:     
         IP_ADDR=$( $iface |  -F:          [[ ! -z $IP_ADDR ]] &&     
     
     MAIL_PREFIX=
     
     # exit  can not get       [[ -z $HOST_NAME || -     
         print_to_log  
         print_to_mail 
         print_to_mail 
         print_to_mail 
         append_mail_title 
         mail_file           -      
     
     # exit        [[ -     
                 content=
          print_to_log 
          auxwww |  bw_backup. |  -v  > $RUN/         print_to_mail 
         print_to_mail 
         print_file_to_mail $RUN/         append_mail_title 
         mail_file           -f $MAIL_TMP $RUN/      
              
  
             print_to_log 
 
          files          
                  -LRpf --parents $files $LOCAL_DATA/         
  
     [[ $mysqlchoice ==  ]];
  print_to_log  
  mydump_cmd=
  $mydump_cmd -u ${Usr} -p ${Pwd} -B $_this_db -o $LOCAL_DATA/$BACKUP_SERIAL/ 
  [[ $mysqlchoice ==  ]] ; 
 print_to_log  
  mysqldump_cmd=
 (( first_run ==  )) && mysqldump_cmd=    
 $mysqldump_cmd --log-error=$_ErrLog -u${Usr} -p${Pwd} -S${mysql_sock} $_this_db > $LOCAL_DATA/$BACKUP_SERIAL/ 
 
 
 
 
  [[ $mysqlchoice ==  && $innobackupway ==   ]] ;
 
 print_to_log  
 # innobackupex --user=root --password=${Pwd} --no-timestamp --defaults-=$mycnf   --slave- --safe-slave-backup  $LOCAL_DATA/$BACKUP_SERIAL/fullbackup_${Now} >> $xtrabackcmdlog  >&
  innobackupex --user=root --password=${Pwd} --no-timestamp --defaults-=$mycnf     $LOCAL_DATA/$BACKUP_SERIAL/fullbackup_${Now}    >> $xtrabackcmdlog  >& 
       [ $? -ne       
         content=
       print_to_log 
      
      print_to_log 
      
 
  [[  $mysqlchoice ==  &&  $innobackupway ==   ]];
 
  $Week  
  
  print_to_log  
 # innobackupex --user=root --password=${Pwd} --no-timestamp --defaults-=$mycnf --slave- --safe-slave-backup   $LOCAL_DATA/$BACKUP_SERIAL/fullbackup_${Now} >> $xtrabackcmdlog   >&
  innobackupex --user=root --password=${Pwd} --no-timestamp --defaults-=$mycnf    $LOCAL_DATA/$BACKUP_SERIAL/fullbackup_${Now}  >> $xtrabackcmdlog  >&
       [ $? -ne       
         content=
       print_to_log 
      
      print_to_log 
      
  
  |  |  |  |  |  dateYM=`   | -F  dateHM=`   | -F  YM=$( -d  +%Y-%m-% HM=$( -d  +%H:% mytime=
 datestr=` -d  tst=` -d  +%  [[  !=  
         let 
         datestr=` -d  
 
 FULL_SERIAL=$( -d  +%Y%m% fullbackupdirname= xtrabackupdiffdir=$LOCAL_DATA/$BACKUP_SERIAL/ xtrabackupfulldir=$( $LOCAL_DATA -type d  -name $fullbackupdirname*  [[ ! -d $xtrabackupfulldir  ]]; 
  
 print_to_log 
 content=
     
 
 print_to_log  
 # innobackupex --incremental $xtrabackupdiffdir --no-timestamp --slave- --safe-slave-backup  --incremental-basedir=$xtrabackupfulldir --user=root --password=${Pwd} --defaults-=$mycnf >> $xtrabackcmdlog  >&
  innobackupex --incremental $xtrabackupdiffdir --no-timestamp  --incremental-basedir=$xtrabackupfulldir --user=root --password=${Pwd} --defaults-=$mycnf  >> $xtrabackcmdlog  >&
       [ $? -ne       
         content=
       print_to_log 
      
      print_to_log 
     print_to_log  
     print_to_log  
      
 
  
 
   
 
 
 
 
 
  
       print_to_log 
 
     _this_db  
      ! mysql -u${Usr} -p${Pwd} -S${mysql_sock} --execute= --batch |   > /dev/ >&
     
         print_to_log 
      
             [ $? -ne                  
                 content=        
                      print_to_log 
                 
                     print_to_log 
         
     
 
  
 ##            print_to_log 
 
           -zcf $BACKUP_SERIAL.  $Week  
  |  |  |  |   -  
  
            print_to_log 
 
          ! nmap -P0 -p$RSYNC_PORT $BACKUP_SERVER |   > /dev/ >&
         
                 print_to_log 
 
                 print_to_mail 
                 append_mail_title 
 
                 mail_file                   -          
         [[ ! -d $ROOT/$IP_ADDR/$( $ROOT) ]] &&  -p $ROOT/$IP_ADDR/$(         # -R $RSYNC_USR:$RSYNC_USR $LOCAL_DATA/$IP_ADDR $LOCAL_DATA/${BACKUP_SERIAL}*
 
          [[ $COMPRESS ==         
                 print_to_log 
                 #RSYNC_DATA=$LOCAL_DATA/$BACKUP_SERIAL.                 RSYNC_DATA=         
                 print_to_log 
                 #RSYNC_DATA=$LOCAL_DATA/                 RSYNC_DATA=         
         rsync -av --password-=$PW_FILE $ROOT/$IP_ADDR ${RSYNC_USR}@${BACKUP_SERVER}::${RSYNC_MOD} > $RUN/rsync.tmp. >&
         # 
         local ret1=$?
         rsync -av --delete --password-=$PW_FILE $RSYNC_DATA/ ${RSYNC_USR}@${BACKUP_SERVER}::${RSYNC_MOD}/${IP_ADDR}/$( $ROOT) > $RUN/rsync.tmp. >&
         local ret2=$?
 
          [[ $ret1 !=  || $ret2 !=          
                 content=
                  print_to_log 
                 print_to_log 
                 print_to_log 
                 print_to_log 
                 print_to_log 
 
                 print_to_mail 
                 print_to_mail 
                 print_to_mail 
                 print_file_to_mail $RUN/rsync.tmp.
                 print_to_mail 
                 print_to_mail 
                 print_file_to_mail $RUN/rsync.tmp.
 
                 append_mail_title 
                 mail_file                   -         
                 print_to_log 
         
 
          -f $RUN/rsync.tmp.*
  
        print_to_log 
 
      MAX_DAY_AGO=$( -d  +%Y%m%     DEL_PREFIX=
 
      /dev/ > $RUN/          [[ $COMPRESS ==         
                 LS_CMD=
         
                 LS_CMD=
         
      lists  $($LS_CMD ${DEL_PREFIX}_* > /dev/     
          [[ -         
              $lists >> $RUN/              -         
     
     
         print_to_log 
          MAX_DAY_AGO=$( -d  +%Y%m%         DEL_PREFIX=
         
          /dev/ > $RUN/          [[ $COMPRESS ==         
                 LS_CMD=
             
                 LS_CMD=
               
          lists  $($LS_CMD ${DEL_PREFIX}_* > /dev/         
                  [[ -                 
                          $lists >> $RUN/                          -                 
         
 
  
 
 # create  [[ ! -d $LOCAL_DATA ]] &&  [[ ! -d $LOG ]] &&  [[ ! -d $RUN ]] &&  
 BACKUP_SERIAL=$( +%Y%m%d)_$( +%H% Bindelday=`  -d  +%Y%m% 
 Now= [[ ! -d $BACKUP_SERIAL ]] &&  $LOCAL_DATA/ 
  print_to_log 
 print_to_log 
    
 [[ $COMPRESS == enable ]] &&  [[ $REMOTE_BACKUP == enable ]] && 
 print_to_log 
 
 
  LOG_SIZE=$( -k $LOG0 |   
  (( $LOG_SIZE > 
     print_to_log 
     [[ -f $LOG3 ]] &&  -fv $LOG3 >>     [[ -f $LOG2 ]] &&  -fv $LOG2 $LOG3 >>     [[ -f $LOG1 ]] &&  -fv $LOG1 $LOG2 >> 
      -fv $LOG0 $LOG1 >> 
 
 print_to_log 
 
  -f $RUN_TAG

相关内容