MySQL简单备份脚本

mkdir /backup
mkdir /backup/backupset
mkdir /backup/script
# 创建备份目录,存放脚本和备份集

# 这是一个使用mysqldump的简单备份脚本
# 使用该命令mysqldump会锁表
# 如果数据库有较大容量的表时不建议使用该命令备份库
# 建议使用Xtrabackup命令进行备份
vi /backup/script/backup.sh
#!/bin/sh
. ~/.bash_profile
MYUSER=root
MYPASS=vincent
DATABASES="mysql test"
LogFile=/backup/script/log_backup.log
SOCKET=/usr/local/mariadb/run/mysql.sock
MYCMD="/usr/local/mariadb/bin/mysql -u$MYUSER -p$MYPASS -S$SOCKET"
MYDUMP="/usr/local/mariadb/bin/mysqldump -u$MYUSER -p$MYPASS -B --flush-privileges --single-transaction --master-data=2 --triggers --routines --events --hex-blob -S$SOCKET" # --flush-logs
TIME=$(date +%F_%H-%M-%S)
echo -e ''$_{1..75}'\b#'>>$LogFile
echo -e ''$_{1..75}'\b#'>>$LogFile
echo -e "\n$(date +%F' '%T) [Info] START BACKUP DATABASE\n">>$LogFile
for database in ${DATABASES}
do
  echo -e "$(date +%F' '%T) [Info] START BACKUP DATABASE $database">>$LogFile
  $MYDUMP $database|gzip >/backup/backupset/${database}_${TIME}.sql.gz
  zcat /backup/backupset/${database}_${TIME}.sql.gz|head -50|grep 'CHANGE MASTER TO'>>$LogFile
  echo -e "$(date +%F' '%T) [Info] END   BACKUP DATABASE $database\n">>$LogFile
  find /backup/backupset -name "$database*" -mtime +3 -exec rm -f {} \;
done
# 脚本如上

chmod +x /backup/script/backup.sh
# 添加可执行权限

crontab -l
#MariDB backup
0 0 * * * /backup/script/backup.sh
# 添加自动任务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值