MySQL备份脚本

#!/bin/bash
# 备份文件要保存的目录
basepath='/data/backup/'
user="root"
pass="mypassword"
mv /data/backup/backup.log /data/backup/backup-$(date +%Y%m%d-%H%M%S).log
echo "start time:`date +%s`">>/data/backup/backup.log
if [ ! -d "$basepath" ]; then
  mkdir -p "$basepath"
fi
# 循环databases数组
for db in `/usr/local/mysql/bin/mysql -u$user -p$pass -e "show databases;"| sed 1d | egrep -v "schema|test|mysql|sys"` 
  do
    # 备份数据库生成SQL文件
     /usr/local/mysql/bin/mysqldump -u$user -p$pass   --default-character-set=utf8 -R  --triggers  --events --opt   --set-gtid-purged=on  --hex-blob --single-transaction --master-data=2 --log-error=/data/backup/backup.log  $db 2>/dev/null | gzip  >$basepath$db-$(date +%Y%m%d-%H%M%S).sql.gz
  done
echo "end time:`date +%s`">>/data/backup/backup.log
# 删除天之前的备份数据
find $basepath -mtime +30 -name "backup-*.log" -exec rm -rf {} \;
find $basepath -mtime +30 -name "*.sql.gz" -exec rm -rf {} \;

原来备份成功与否并不知道,在原有的备份脚本上做了一些修改,过滤掉系统库的备份,在备份开始和完成加上时间戳,并将备份日志打印出来。可以通过zabbix或者写额外的程序去监控日志文件,将报错展示到前台,也可以计算时间戳获得备份时长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值