mysql分庫備份腳本.sh

#!/bin/bash

# Delete Backup Time
delete_time=7

# Backup User & Mysql Command
db_user="root"
password="111111"
mysql="/usr/local/mysql/bin/mysql"
mysqldump="/usr/local/mysql/bin/mysqldump"

# Path & IP
log_dir="/mysqlbackup"
backup_dir="/mysqlbackup"
ip_ethernet="eth0"
ip=$(/sbin/ifconfig $ip_ethernet|grep Bcast|awk -F[:] '{print $2}'|awk '{print $1}')

# Backup Options
conf="--default-character-set=utf8 --hex-blob --opt --extended-insert=false --routines --triggers --master-data --log-error=${log_dir}/mysqldump-error.log --single-transaction --quick  --set-gtid-purged=OFF -B"

# First Check
if [ ! -d $log_dir ];then mkdir $log_dir;fi
if [ ! -d $backup_dir ];then mkdir $backup_dir;fi

# Dump & Record
echo -e "$(date +%F)\n$(date "+%H:%S")  backup begin" >> ${log_dir}/mysqldump.log
name_opt=$(echo $ip|awk -F. '{print "."$3"."$4}')
for db_name in `${mysql} -u${db_user} -p${password} -Ne "show databases;"|egrep -v "(mysql|test|information_schema|performance_schema)"`
do
  start=`date "+%Y-%m-%d %H:%M:%S"`
  startutc=`date +%s -d "$start"`
  ${mysqldump} -u${db_user} -p${password} ${conf} ${db_name} |gzip > ${backup_dir}/${db_name}${name_opt}-$(date +%F).sql.gz
  end=`date "+%Y-%m-%d %H:%M:%S"`
  endutc=`date +%s -d "$end"`
  if [ $? = 0 ]
  then
	echo "Start:$start End:$end  $db_name backup successful,Interval:$interval;"  >> ${log_dir}/mysqldump.log
  else
	echo "$(date "+%H:%S")  $db_name backup faild" >> ${log_dir}/mysqldump.log
  fi
done

find ${backup_dir} -name "*.gz" -mtime +$delete_time |xargs rm -f


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章