引言
crontab
是 Linux 定时任务的核心工具。本文将详解其语法、高级用法及常见问题。
1. 基础语法与表达式
1.1 时间字段格式
* * * * * command
| | | | |
| | | | +----- 星期几 (0-7,0/7=星期日)
| | | +------- 月份 (1-12)
| | +--------- 日期 (1-31)
| +----------- 小时 (0-23)
+------------- 分钟 (0-59)
1.2 常用示例
# 每小时 10 分执行
10 * * * * /path/to/script.sh
# 每周日 00:00 执行
0 0 * * 0 /backup.sh
2. 高级用法
2.1 环境变量与路径
# 在 crontab 中设置环境变量
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin
# 明确指定脚本路径
0 2 * * * /usr/local/bin/cleanup.sh
2.2 邮件通知
# 将输出发送到指定邮箱
MAILTO="admin@example.com"
3. 常见问题与调试
3.1 任务未执行
检查
cron
服务状态systemctl status cron
查看日志
journalctl -u cron
3.2 调试技巧
# 手动执行任务
crontab -l | grep "command" | awk '{system($0)}'
4. 定时任务管理
4.1 编辑与查看
# 编辑当前用户 crontab
crontab -e
# 查看所有用户的定时任务
ls /var/spool/cron/crontabs
4.2 anacron 的补充
适用场景 :非 24/7 运行的系统(如台式机)
配置文件
/etc/anacrontab
总结
掌握 crontab
的表达式和环境配置是关键。通过合理设置任务、邮件通知和调试技巧,可高效管理定时任务。