mysql 数据库备份脚本

#!/bin/bash


###update on 20150604 ,add delete AUTO_INCREMENT 


###update on 20151008,add set-gtid-purged=OFF to delete @@global.gtid_purged statements in the bak file


###201705281958 增加备份一些选项,如:--singel-transaction 增加备份一致性,--master-data 在备份中打印binlog postion,有助于结合binlog日志恢复


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/webdata/opt/local/percona/bin

export PATH

HOST='localhost'

USER=root

PASS='xxxx'

PORT=3306

SOCK=/webdata/opt/local/percona/misc/mysql.sock

#OPS='--single-transaction --master-data=2 --routines --flush-privileges --skip-add-drop-table --flush-logs'

OPS='--single-transaction --master-data=2 --routines --flush-privileges --skip-add-drop-table  -R -E'

DB_BAK_DATE=`date +%Y%m%d`

DISK_UTILS=`df -hP|awk '/webdata/ {gsub(/[^0-9]+/,"",$5);print $5}'`

            if [ $DISK_UTILS -gt 93 ];then


                 find /webdata/db3306/ -type d -name "201*" -mtime +60 -exec rm -rf {} \;


           fi


DB_FILE=`mysql -h $HOST -u $USER  -p$PASS -P $PORT -S $SOCK -e 'show databases' 2>/dev/null|awk '/mysql|eddb|fddb|gddb|iddb|mddb|oddb|wetool/NR>1'|xargs`


mkdir -p /webdata/db3306/$DB_BAK_DATE

BAK_FILE_DIR=/webdata/db3306/$DB_BAK_DATE

echo "start db backup @`date +%Y-%m-%d" "%T`" >>$(dirname $BAK_FILE_DIR)/backup_log


               #for sql_file in $DB_FILE;do


                           #mysqldump -h $HOST -u $USER  -p$PASS --default-character-set=utf8 --set-gtid-purged=OFF $sql_file --ignore-table=$sql_file.exchange_ticket_bak 2>/dev/null|sed 's/AUTO_INCREMENT=[0-9]*\s//g'|gzip >$BAK_FILE_DIR/$sql_file.gz


     mysqldump -h $HOST -u $USER  -p$PASS -P $PORT -S $SOCK --default-character-set=utf8 $OPS -B $DB_FILE  2>/dev/null|sed 's/AUTO_INCREMENT=[0-9]*\s//g'|gzip >$BAK_FILE_DIR/all.gz


              #done


#scp -P 16868 -rp $BAK_FILE_DIR gitlab.huigujia.cn:/dbback/bkcq


echo "finsh db backup @`date +%Y-%m-%d" "%T`" >>$(dirname $BAK_FILE_DIR)/backup_log


请先 登录 后评论

1 个回答

石天

此脚本下载地址:下载

请先 登录 后评论
  • 1 关注
  • 0 收藏,514 浏览
  • shitian 提出于 2023-09-16 11:33

相似问题