linux 系统下mysql数据库 备份脚本

#!/bin/bash   
   
MyUSER="root"    
MyPASS="pass"       
MyHOST="localhost"          
  
# Linux bin paths, change this if it can not be autodetected via which command  
MYSQL="$(which mysql)"  
MYSQLDUMP="$(which mysqldump)"  
  
# Backup Dest directory, change this if you have someother location  
DEST="/data0/backup/mysql"  
  

  
# Get hostname  
HOST="$(hostname)"  
  
# Get data in dd-mm-yyyy format  
NOW="$(date +"%Y-%m-%d")"  
echo $NOW

# Main directory where backup will be stored  
MBD="$DEST/$NOW"  
  
# File to store current backup file  
FILE=""  
# Store list of databases   
DBS=""  
  
# DO NOT BACKUP these databases  
IGGY="mysql information_schema performance_schema"  
   
[ ! -d $MBD ] && mkdir -p $MBD || :  
  
echo $(date +"%Y-%m-%d %H:%M:%S")" >> Start backup..." >> /data0/backup/mysql/backup.log
  
# Get all database list first  
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"  
for db in $DBS  
do  
    skipdb=-1  
    if [ "$IGGY" != "" ];  
    then  
    for i in $IGGY  
    do  
        [ "$db" == "$i" ] && skipdb=1 || :  
    done  
    fi  
   
    if [ "$skipdb" == "-1" ] ; then  
    FILE="$MBD/$db.sql"  
    # do all inone job in pipe,  
    # connect to mysql using mysqldump for select mysql database  
    # and pipe it out to gz file in backup dir :)  
    $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS  $db > $FILE  
    $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS -ntd -R  $db >> $FILE  
    fi  
done  
scp -r $MBD IP:/home/fh_xxx_mysql_backup_new/
echo -e $(date +"%Y-%m-%d %H:%M:%S")" >> Backup completed!\n" >> /data0/backup/mysql/backup.log
 

你可能感兴趣的:(linux,linux常用命令)