最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux 环境自动化备份策略及 Crontab 配置关键技术
时间:2026-07-26 08:36:59 编辑:袖梨 来源:一聚教程网
真正起作用的是脚本设计和环境适配:脚本须写死解释器、显式声明完整PATH、关键命令用绝对路径、时间戳%转义;MySQL备份需安全配置文件认证并加四参数;定时任务必须重定向日志、加随机延迟防IO峰值、检查磁盘空间与目录存在性,清理策略应独立于备份脚本。
Linux 自动化备份靠 crontab 调度,但真正起作用的是脚本设计和环境适配。单纯加一条 0 2 * * * /path/backup.sh 很容易静默失败——不是没执行,而是执行了却找不到命令、连不上数据库、日志全丢进黑洞。
备份脚本必须自包含、路径全显式
crond 启动时环境极简,PATH 常只有 /usr/bin:/bin,mysqldump、rsync、date 等命令可能根本不在路径里。
- 脚本第一行写死解释器:
#!/bin/bash - 开头立即声明完整 PATH:
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; export PATH - 所有关键命令用绝对路径:
/usr/bin/mysqldump、/bin/tar、/usr/bin/find - 时间戳变量中
%字符需转义,例如:date +%Y%m%d_%H%M
数据库备份务必安全+一致
MySQL 备份不能只 dump 数据,更不能把密码写在命令行里。
- 密码存进
~/.my.cnf(权限必须chmod 600),内容如下:
[client]
user = backup_user
password = YourStr0ngP@ss! - mysqldump 必加四参数:
--single-transaction --routines --triggers --events,缺一不可 - 备份文件名含日期与数据库名,例如:
mysql_app_$(date +%F_%H%M).sql.gz - 用
gzip压缩后立即校验:gzip -t $FILE,失败则退出并记录错误
定时任务要可追踪、防冲突、有容错
多个节点或多个任务共用同一时间点,容易打满 I/O;没日志等于没备份。
- crontab 条目末尾必须重定向输出:
0 2 * * * /home/app/backup.sh >> /var/log/backup.log 2>&1 - 集群多节点备份,用
sleep $((RANDOM % 300))随机延后最多 5 分钟,避免峰值叠加 - 脚本内检查目标目录是否存在、磁盘剩余空间是否低于 20%,不满足则中止并写日志
- 用软链接维护最新备份:
ln -sf $FILENAME latest.sql.gz,方便快速定位
清理策略与保留逻辑要独立可控
备份不清理,三个月后磁盘告警;清理太狠,恢复时发现只剩昨天一份。
- 清理动作不要和备份写在一个脚本里,单独拆出
cleanup.sh - 全量备份保留最近 7 天:
find /backup -name "mysql_*_*.sql.gz" -mtime +7 -delete - 增量日志保留 30 天,加
-maxdepth 1防误删子目录 - 清理前先
echo即将删除的文件列表到日志,留痕可查
相关文章
- 三角洲行动压水堆服务器室在何处 07-28
- 三角洲行动铁路通道何处 07-28
- 三角洲行动托卡马克数据中心在哪 07-28
- 三角洲行动后处理厂机房何在 07-28
- 梦幻西游女魃墓69级装备搭配 07-28
- 三角洲行动s10恢复训练任务指南 07-28