利用crontab实现MySQL定期备份并按日期归档

栏目:技术文章 发布时间:2026-04-28 14:33
通过crontab配置定时任务,可实现MySQL数据的自动化备份,结合按日期命名的压缩包存储,既保障数据安全性又提升恢复效率。关键步骤涵盖脚本编写、权限设置及定时任务配置,确保备份逻辑清晰且易于管理。

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建保存备份文件的路径/mysqldata 

#mkdir /mysqldata

2、创建/usr/sbin/bakmysql文件 

#vi /usr/sbin/bakmysql

输入 

rq=` date +%Y%m%d ` tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成 

rq=` date +%Y%m%d ` mysqldump --all-databases -u root -p980405 > /mysqldata/mysql$rq.tar.gz

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同 

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做。 

3、修改文件属性,使其可执行 

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab 

利用crontab实现MySQL定期备份并按日期归档(图1)

#vi /etc/crontab

在下面添加 

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份 

5、重新启动crond 

# /etc/rc.d/init.d/crond restart

完成。 

这样每天你在/mysqldata看到的是这样的文件 

mysql20040619.tar.gz

你直接下载就可以了。

在tar命令执行前,停止数据库服务进程或锁定数据库, 

否则恢复数据时,会出现数据库损坏的情形,运气好时可修复,运气不好时就不可以了。