Linux下通过Crontab实现MySQL数据库定时备份与清理

Owen
Owen
发布时间:2026-10-14| 4人浏览过
原创

本文详述了在Linux环境下利用crontab和Shell脚本实现MySQL数据库定时备份与无用文件自动清理的完整流程。

结果或目标

在Linux服务器中建立一套自动化机制:每天凌晨定期将MySQL数据库打包归档至指定目录,同时定时删除指定的临时缓存文件,防止磁盘空间被占用或产生冗余数据。

准备条件

  1. 操作环境:拥有 root 权限的 Linux 系统(如 CentOS、Ubuntu)。
  2. 工具准备:命令行终端、vi/vim 编辑器、crontab 服务。
  3. 路径规划:
    • 数据库根目录:通常为 /var/lib/mysql(具体需根据实际安装情况确认)。
    • 备份存储目录:新建 /mysqldata 用于存放压缩后的备份包。

真实操作顺序

第一步:清理定时任务与查看状态

在进行新的配置前,先了解现有的计划任务情况,避免冲突。

  • 查看现有列表:
复制代码
crontab -l
  • 编辑任务:
复制代码
crontab -e

注意:每次修改后需要生效,可通过重启 crond 服务或等待系统自动重载来完成更新。

复制代码
/etc/rc.d/init.d/crond restart

第二步:执行每日定时删除临时文件

为了释放磁盘空间,可以设定每隔一天(例如凌晨 3:00)清理特定的临时脚本目录。

  1. 打开 crontab 编辑器:
复制代码
crontab -e
  1. 添加以下规则:
复制代码
00 03 * * * rm -rf /www/cmstest/my120/public/scripts/jpgraph/*

参数说明:
00 03 * * * 表示每天的凌晨 3:00 执行一次。
rm -rf 为强制删除命令,请谨慎核对路径是否准确。

保存退出后,建议重启 crond 服务使新规则立即生效。

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

直接打包数据库物理文件是最常见的备份方式之一,但需注意数据库的一致性风险。以下步骤演示如何构建一个基础的 tar 打包脚本。

  1. 创建备份存放目录:
复制代码
mkdir /mysqldata
  1. 确定数据库物理路径:

大多数情况下路径为 /var/lib/mysql。如果不确定位置,可以通过以下方式查找:

复制代码
/usr/local/mysql/bin/mysql -u root -p show databases; find / -name "数据库名"
  1. 编写备份脚本 bakmysql:

使用 vi 编辑器创建脚本:

相关标签:

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

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 算法库。