外观
3.2 定时任务配置
约 464 字
备份定时任务
本页对应「三、操作步骤」的 3.2,完成定时任务配置。返回上级:自动备份方案说明。
前置条件
- 3.1 已完成,脚本可手动执行成功且退出码为 0。
- cron 服务处于运行状态。
- 已确认每日低峰时段,且与其他定时任务错开。
操作步骤
- 确认 cron 服务状态与系统时间。
systemctl is-active cron
timedatectl- 写入
/etc/cron.d/axis-backup,显式声明 SHELL 与 PATH:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=ops@example.com
30 3 * * * deploy /srv/axis/scripts/backup.sh- 修正文件属性。cron.d 下的文件不能有执行位,属主必须为 root。
sudo chown root:root /etc/cron.d/axis-backup
sudo chmod 644 /etc/cron.d/axis-backup
sudo systemctl reload cron- 用一次性临时任务验证触发链路,不必等到次日凌晨。
echo "*/2 * * * * deploy /srv/axis/scripts/backup.sh" | sudo tee /etc/cron.d/axis-backup-test
sudo chmod 644 /etc/cron.d/axis-backup-test- 观察日志后删除临时任务,避免重复备份。
sudo grep CRON /var/log/syslog | tail -n 5
sudo tail -n 20 /srv/axis/backup/log/backup-*.log
sudo rm -f /etc/cron.d/axis-backup-test结果确认
/var/log/syslog中出现(deploy) CMD (/srv/axis/scripts/backup.sh)。- 到点后 daily 目录新增以当前分钟命名的备份文件,且 sha256 校验通过。
grep -c cron /var/log/syslog有当日记录,说明 cron 守护进程正常写日志。- 删除临时任务后
ls /etc/cron.d/只剩 axis-backup 一个相关文件。
注意事项
- /etc/cron.d 下的文件名不要带
.sh之类的后缀,带点号的文件会被 cron 忽略。 - MAILTO 需要本机有 MTA 才能投递;无 MTA 时改为脚本内调用 webhook 通知。
- 避免与其他整点任务重叠,数据库备份与日志切割同时执行会放大 IO 峰值。
- 备份失败时脚本退出码非 0,但 cron 不会重试,需依赖日志监控发现问题。