filts 发表于 2018-9-30 10:28:14

MySQL分库备份

#!/bin/bash  
#---------------------------------------------------------
  
# $Name:         Store_backup.sh
  
# $Version:      v1.0
  
# $Author:       邱月涛
  
# $organization: www.yi******.cn
  
# $Create Date:2017-06-03
  
# $Description:MySQL store Backup
  
#用于MySQL 分库备份,并保留30天数据
  
#---------------------------------------------------------
  
#source /etc/init.d/functions
  
DAY=`date +%F`
  
BACK_DIR="/home/backup/mysqlbackup"
  
DBUSER="root"
  
DBPASSWD="你自己的password"
  
BIN_PATH="/usr/bin"
  
LOG="/home/backup/mysqlbackup/mysqlback.log"
  
## Close all tables and refresh log ####
  
"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush logs"
  
#"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush tables with read lock"
  
echo "mysqldump start `date +%F\ %H\:%M\:%S`" >> "$LOG"
  
## Each backup database to the target location ####
  
for i in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema"`
  
do
  
      if [ ! -d "$BACK_DIR"/"$i" ]; then
  
                mkdir -p"$BACK_DIR"/"$i"
  
         fi
  
"$BIN_PATH"/mysqldump -u "$DBUSER" -p"$DBPASSWD" --default-character-set=utf8 --opt --lock-tables -f --log-error="$LOG" "$i" > "$BACK_DIR"/"$i"/"$DAY".sql
  
   done
  
echo "mysqldump stop `date +%F\ %H\:%M\:%S`" >> "$LOG"
  
echo "" >>"$LOG"
  
## Delete 30 days ago backup files ####
  
for RM in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema"`
  
   do
  
rm -rf "$BACK_DIR"/"$RM"/$(date +%F --date='30 days ago').sql
  
    done


页: [1]
查看完整版本: MySQL分库备份