如何部署自动备份服务:Crontab 与数据库备份实战教程

千萱小哥_2100

千萱小哥_2100

2026-06-27

405人浏览

原创

crontab不是服务而是调度器,部署自动备份的关键是编写健壮可验证的备份脚本:密码用~/.my.cnf安全存储、innodb加--single-transaction、备份后校验空文件;crontab执行需用绝对路径、显式path、重定向stderr、root权限运行;文件名含秒级时间戳,清理前先筛非空文件;脚本需set -e、检查磁盘空间、记录日志。

如何部署自动备份服务:crontab 与数据库备份实战教程

Crontab 本身不是服务,而是 Linux 的定时任务调度器;所谓“部署自动备份服务”,本质是用 crontab 调度一个健壮、可验证的数据库备份脚本。关键不在“装个服务”,而在让每次备份真发生、失败能察觉、旧文件不堆积、恢复时可用。

备份脚本必须做对的三件事

手动跑通 ≠ crontab 跑通。绝大多数静默失败,源于脚本没处理好环境、权限和一致性。

  • 密码绝不硬编码:删掉所有 -p'xxx' 或 DB_PASS="xxx"。改用 ~/.my.cnf(如 root 运行就放 /root/.my.cnf),内容仅含 [client] 段,权限严格设为 600
  • InnoDB 表必加 --single-transaction:否则高并发下导出可能跨事务不一致;MyISAM 表才需 --lock-all-tables(会阻塞写入)
  • 备份后立刻校验有效性:用 if [ ! -s "$BACKUP_FILE" ]; then echo "empty backup"; exit 1; fi,空文件说明 mysqldump 已失败但被忽略

crontab 执行前必须检查的四个点

crond 启动时只加载极简环境,PATH 通常只有 /usr/bin:/bin,也不读 .bashrc。

左手医生开放平台
左手医生开放平台

左手医生开放平台是一款面向智慧医疗服务建设的 AI 医疗开放平台。

下载
  • 所有命令写绝对路径:/usr/bin/mysqldump、/bin/gzip、/usr/bin/find —— 用 which mysqldump 确认真实路径
  • 脚本开头显式声明 PATH:export PATH="/usr/bin:/bin:/usr/local/mysql/bin"
  • 错误输出必须重定向到日志:2>> /var/log/mysql_backup.log,否则 stderr 全丢,失败无声无息
  • 用 sudo crontab -e 编辑 root 任务:普通用户 crontab 无法访问 MySQL 配置、写系统级备份目录(如 /backup/)

文件命名与清理要防坑

名字不带时间戳,或清理逻辑靠 -mtime,是线上事故高频原因。

  • 文件名含秒级时间戳:$(date +\%Y\%m\%d_\%H\%M\%S)(% 要转义),避免同一分钟多次运行冲突
  • 清理旧备份别用 find ... -mtime +7:一次失败备份留下空文件,-mtime 仍认为它是“新文件”而跳过删除;应先 find ... -size +0 筛非空文件,再按日期解析或加 -maxdepth 1 安全清理
  • 压缩与导出合并成一步:mysqldump | gzip > $BACKUP_FILE,避免中间生成未压缩的大临时文件撑爆磁盘

生产可用的最小结构示例

不追求功能堆砌,只保核心动作可验证:

  • 脚本首行写死解释器:#!/bin/bash
  • 开头 set -e:任一命令失败立即退出
  • 备份前检查磁盘空间,超 90% 使用率自动跳过并记录告警
  • 成功后打日志:echo "[$(date)] OK: ${DB_NAME}_${DATE}.sql.gz" >> /var/log/mysql_backup.log
  • crontab 条目示例(每天凌晨 2 点):0 2 * * * /opt/scripts/mysql_backup.sh 2>> /var/log/mysql_backup.log

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2752

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

829

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2496

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4612

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习