Linux自动化运维中,定时备份与监控报警是一体化防护闭环:备份保障数据可恢复,监控报警确保异常被及时捕获;需通过cron+脚本实现可追溯、带校验的归档备份,并用轻量脚本抓取CPU、内存、磁盘核心指标,结合本地日志与邮件双通道报警,辅以路径、权限、环境等可靠性加固措施。

Linux 自动化运维中,定时备份与监控报警不是两个孤立动作,而是一体化的防护闭环:备份保障数据可恢复,监控报警确保异常被及时捕获。关键不在于堆砌工具,而在于让脚本可靠运行、阈值合理设定、通知真正触达。
定时备份:用 cron + 脚本实现可追溯、带校验的归档
备份脚本需兼顾时间精度、路径安全和失败反馈。例如每天凌晨2点备份 /etc 并压缩为带日期标签的归档:
- 编写脚本 /usr/local/bin/backup_etc.sh,开头加入 set -e 确保任一命令失败即退出;用 date -d yesterday +%Y-%m-%d 获取昨日日期,避免备份当天未完成配置;
- 压缩前执行 tar -tf /dev/null /etc &> /dev/null 验证目录可读,失败则记录日志并退出;
- 生成归档后用 sha256sum 计算校验值,保存为 .sha256 同名文件;
- 在 crontab 中添加:0 2 * * * /usr/bin/sh /usr/local/bin/backup_etc.sh(注意使用绝对路径)。
基础监控:用 shell 脚本抓取核心指标并比对阈值
无需立即上 Zabbix,一个轻量脚本就能覆盖 CPU、内存、磁盘三类关键项:
- CPU 使用率:从 /proc/stat 两次采样间隔1秒,计算非空闲时间占比,避免 top 的采样偏差;
- 内存使用率:用 free -m 解析 MemAvailable 字段(而非 MemFree),更真实反映可用内存;
- 磁盘使用率:用 df -P(POSIX 格式)解析,排除 tmpfs、devtmpfs 等伪文件系统,只检查挂载点如 /、/var;
- 所有指标统一写入 /var/log/monitor.log,格式为 $(date '+%F %T') CPU:72.3% MEM:85.1% ROOT:91.2%,便于后续 grep 或日志轮转。
报警触发:本地日志 + 邮件双通道,避免单点失效
报警不是“发出去就行”,而是确保“有人看到”。推荐组合策略:
- 首次超阈值时,写入 /var/log/alert.log 并执行 logger -t monitor "ALERT: / is 92% full",让系统日志也留存痕迹;
- 同时调用 mail -s "【告警】服务器磁盘超限" admin@example.com 发送邮件;
- 为防重复轰炸,加入简单去重逻辑:用 touch -c /tmp/alert_disk_root.lock && sleep 300 设置5分钟静默期,期间相同告警跳过;
- 邮件必须配置 SMTP 认证(如 QQ 邮箱需开启 SMTP 并用授权码),测试时先用 echo "test" | mail -s "test" your@email.com 验证通路。
可靠性加固:让自动化真正“自动”
很多脚本上线后失效,问题常出在环境依赖或权限上:
- 脚本第一行写明 #!/bin/bash,避免因默认 shell 不同导致语法错误;
- 所有命令使用绝对路径(/usr/bin/df 而非 df),防止 cron 环境变量缺失;
- crontab 中添加 PATH=/usr/local/bin:/usr/bin:/bin,显式声明路径;
- 定期检查 systemctl status cron 和 journalctl -u cron -n 20,确认调度服务本身健康。


















