Linux系统利用crontab定时备份Mysql数据库方法

何川
何川
发布时间:2026-10-16| 8人浏览过
原创

本文将详细讲解如何在Linux环境下配置定时任务,自动备份MySQL数据库。通过创建执行脚本并添加到系统的计划任务列表中,实现每天指定时间自动将数据保存到本地目录,保障数据安全。

结果或目标

在Linux服务器中设置一个自动化流程,能够在每天固定时间(例如凌晨3点)自动执行一次完整的数据备份操作,并将备份文件按照日期命名存储在指定目录下,以便后续查阅和恢复。

准备条件

  • 操作系统:安装并运行正常的Linux系统。
  • 数据库服务:已安装且正在运行的MySQL或MariaDB服务。
  • 用户权限:拥有sudo或root权限,以便修改系统级配置文件。
  • 存储路径:确认磁盘空间充足,用于存放备份文件。

真实操作顺序

第1步:创建保存备份文件的目录

目的:为备份文件提供一个独立的存储空间,避免与系统文件混淆。

动作:终端中执行以下命令创建一个名为/mysqldata的文件夹:

# mkdir /mysqldata

完成状态:输入ls -ld /mysqldata查看到该目录存在。

第2步:创建数据库备份脚本

目的:编写一个可执行的Shell脚本来定义具体的备份逻辑。

入口:打开命令行编辑器创建新文件:/usr/sbin/bakmysql

# vi /usr/sbin/bakmysql

动作:在文件中输入备份指令。这里提供两种常见的备份策略:

方案A:直接打包数据库原始文件(适用于快速整体迁移)

# 获取当前日期
rq=$(date +%Y%m%d)
# 打包整个/var/lib/mysql目录
# 注意:这通常需要数据库处于停止状态或在同一台机器上进行冷备
tar zcvf /mysqldata/mysql${rq}.tar.gz /var/lib/mysql

方案B:使用mysqldump导出SQL语句(推荐,热备方式)

# 获取当前日期
rq=$(date +%Y%m%d)
# 导出所有数据库,替换“密码”为你的实际root密码
mysqldump --all-databases -u root -p你的密码 > /mysqldata/mysql${rq}.sql

重要参数说明:

  • date +%Y%m%d:生成如 20240520 格式的日期字符串。
  • --all-databases:备份服务器上的所有库,若只需备份特定库可改为 -d database_name。
  • -u root:指定用户名,请根据实际账号修改。
  • -p密码:如果密码包含特殊字符,建议使用引号包裹或配置.my.cnf免密登录。

第3步:赋予脚本可执行权限

目的:让Linux系统允许该脚本作为程序运行。

动作:执行以下命令:

# chmod +x /usr/sbin/bakmysql

第4步:添加定时任务(Crontab)

目的:告诉系统在每天的特定时间自动调用上述脚本。

入口:编辑全局crontab文件:/etc/crontab

# vi /etc/crontab

动作:在文件末尾添加以下行:

# 分 时 日 月 星期 用户 执行路径
01 3 * * * root /usr/sbin/bakmysql

参数解释:

  • 01 3:表示每天凌晨3点01分启动任务。
  • * * *:分别代表每月、每周、每天都执行。
  • root:指定以root用户身份运行(因为涉及系统级路径操作)。
  • /usr/sbin/bakmysql:调用的具体脚本路径。

第5步:重启cron服务使配置生效

目的:部分Linux发行版修改/etc/crontab后需重启服务加载新规则。

动作:执行以下命令:

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

或者在某些新版CentOS/Ubuntu上直接使用:systemctl restart crond。

完成判断

等待至设定的时间点后,进入/mysqldata目录查看。方案A会生成类似mysql20240520.tar.gz的文件;方案B会生成mysql20240520.sql文件。文件大小不为0且内容可读即表示成功。

简要总结

通过组合简单的Shell脚本与Linux底层的crontab定时器,可以低成本构建稳定的数据库异地或本地容灾机制。建议定期对备份文件进行下载测试,确保在灾难发生时能够顺利还原。以上就是关于在Linux系统中利用crontab定时备份Mysql方法的详细内容,更多关于crontab的使用方法请查看本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。