Linux生产环境下利用定时任务自动备份数据库

一、编写备份脚本

#创建备份文件
vi DATABASE_BF.sh
#写入备份命令
#!/bin/sh
MYSQL_CMD=/www/server/mysql/bin/mysqldump
MYSQL_USER=数据库用户名
MYSQL_PWD=数据库密码
DATA='date +%Y-%m-%d_%H_%M_%S'
for DBname in luntan taskdb
do 
	${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/backup/${DBname}_$(date +%Y-%m-%d_%H_%M_%S).sql.gz
done

命令详解:MYSQL_CMD的路径为mysql自带逻辑备份命令mysqldump文件的路径

二、添加可执行权限

chmod +x DATABASE_BF.sh

测试运行:./DATABASE_BF.sh

image.png

三、写入定时任务

1、查看有没有安装crontab

image.png

2、使用命令crontab -e将脚本加入定时任务

crontab -e
#定时脚本命令
30 2 * * * /backup/BFDatabases.sh 指定每天2:30执行一次

image.png

3、crontab文件格式

  *       *       *      *      *        command
minute   hour    day   month   week      command
 分       时      天     月     星期       命令

四、备份冗余问题

以上脚本每天都会定时执行,且不会自动删除,因此会占用磁盘空间,因此需要进一步优化,在每次执行完毕备份后,对前几天的备份数据进行一个删除。

#!/bin/sh
MYSQL_CMD=/www/server/mysql/bin/mysqldump
MYSQL_USER=root
MYSQL_PWD=454346fa
DATA='date +%Y-%m-%d_%H_%M_%S'
for DBname in luntan taskdb
do 
	${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/backup/${DBname}_$(date +%Y-%m-%d_%H_%M_%S).sql.gz
done
#这行命令的作用是:查找/backup/目录下3天之前的文件并且删除
find /backup/ -mtime +3 -type f | xargs rm -f

注:以上只是一个简单的定时备份,在生产中,需根据实际情况进行备份,可采用备份工具xtrabackup与添加定时任务来进行编写脚本进行备份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@不会写代码的小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值