线上mysql备份_线上MySQL备份脚本

本文介绍了一个用于MySQL数据库备份的shell脚本,该脚本通过获取当前日期创建备份目录,筛选出非系统库并进行gzip压缩备份。同时,脚本还设置了保留备份天数的限制,超出期限的旧备份将被自动清理。脚本通过crontab命令实现定时执行,确保数据库定期备份。
摘要由CSDN通过智能技术生成

最近在研究数据库备份,定时执行备份任务,这里直接把备份脚本设置为crontab命令定时执行,脚本内容如下:

[root@mysql-db ~]# cat mysql-backup.sh

#!/bin/bash

dbpwd='possw0rd123'

dbuser=root

host=127.0.0.1

port=3306

dbarg=" -u$dbuser -p$dbpwd -h$host -P$port --default-character=utf8 "

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

BACKUP_PATH=/DB_Backup/backup/DB_BACKUP

LOG=$BACKUP_PATH/$DATE/backup.log

keep_backup_days=7

mkdir -p $BACKUP_PATH/$DATE/$port

for db in `echo show databases|mysql $dbarg|grep -v "information_schema\|test\|mysql\|Database" `

do

echo -e "$DATE `date +%T` DUMP $port $db  .. \c " >>$LOG

mysqldump -B $dbarg -R $db |gzip >$BACKUP_PATH/$DATE/$port/${db}_${port}.sql.gz

echo -e "`date +%T` OK " >>$LOG

done

for dir in `ls $BACKUP_PATH|grep [0-9]$`

do

if [ `ls -l $BACKUP_PATH|grep [0-9]$|wc -l` -gt 2 ];then

find ${BACKUP_PATH}/$dir -name "*.sql.gz*"  -ctime +${keep_backup_days}|xargs rm -f

find ${BACKUP_PATH}/$dir -name backup.log  -ctime +${keep_backup_days}|xargs rm -f

find ${BACKUP_PATH}/$dir -type d -empty |xargs rm -rf

#清除空目录

find ${BACKUP_PATH}/$dir -type d -empty |xargs rm -rf

fi

done

[root@mysql-db ~]# crontab -l

1 4 * * * sh /DB-Backup/shell/DB_backup.sh

本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1793771,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值