Powered by md-Blog  文 - 篇  访客 -

Linux定时备份MySQL数据库并且删除7天前的备份


  分类:Linux服务器  / 
更新:2020-05-21 16:50:06  /  创建:2020-05-21 16:39:01
不要删除

1、版本

MySQL 5.6 以上

2、配置访问权限

vim /etc/my.cnf
[client]
host=localhost
user=你的数据库用户
password='你的数据库密码'

3、编写备份脚本

vim backup.sh
#!/bin/bash

backupDir=/opt/web/_backup
backupTime=`date +%Y-%m-%d@%Hh%Mm%Ss`

logDir=$backupDir"/mysql.log"

if [ ! -d "$logDir" ]; then
    touch $logDir
fi

echo "["$backupTime"]【start】备份任务开始 >>>>>>>>>>"  >> $backupDir/mysql.log

my_dbname=$backupDir"/my_dbname"

if [ ! -d "$my_dbname" ]; then
    mkdir $my_dbname
fi

mysqldump my_dbname | gzip > $my_dbname/my_dbname-$backupTime.sql.gz
echo "1.【my_dbname】备份完成"  >> $backupDir/mysql.log

cd $my_dbname
rm -rf `find . -name '*.sql.gz' -mtime +7` >> $backupDir/mysql.log 2>&1    #删除7天前备份文件
echo "2.【my_dbname】清除7天前数据完成" >> $backupDir/mysql.log

backupEndTime=`date +%Y-%m-%d@%Hh%Mm%Ss`
echo "["$backupEndTime"]【success】>>>>>>>>>> 备份任务结束"  >> $backupDir/mysql.log

4、添加执行权限

chmod +x backup.sh

5、测试执行

./backup.sh

6、添加定时任务

编辑任务,操作方式同 vim 编辑器
crontab -e
每天晚上23点执行备份任务
0 23 * * * /opt/web/_backup/backup.sh
查看定时任务
crontab -l

7、重启任务

systemctl restart crond

8、数据恢复

#SQL备份文件恢复:
mysql -u root -p 你的数据库 < 备份文件名.sql

#压缩文件恢复:
gzip < 备份文件名.sql.gz | mysql -u root -p 你的数据库

不要删除

小站不易,感谢支持!