crontab 是 Linux/Unix 系统下的定时任务管理工具,允许用户在固定时间或间隔执行指定的命令或脚本。
crontab -e # 编辑当前用户的crontab文件
首次使用时,系统会提示选择默认编辑器(如nano、vim等)。
crontab 的时间格式如下:
* * * * * command_to_execute
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └── 星期几 (0 - 6) (0表示周日)
│ │ │ └──── 月份 (1 - 12)
│ │ └────── 日 (1 - 31)
│ └──────── 小时 (0 - 23)
└────────── 分钟 (0 - 59)
每分钟执行一次:
* * * * * command
每小时的第30分钟执行:
30 * * * * command
每天凌晨2点执行:
0 2 * * * command
每周一上午8点30分执行:
30 8 * * 1 command
每月1日凌晨3点执行:
0 3 1 * * command
每5分钟执行一次:
*/5 * * * * command
工作日(周一到周五)上午9点到下午5点每小时执行:
0 9-17 * * 1-5 command
crontab 还支持一些特殊字符串:
@reboot
- 系统启动时运行@yearly
或 @annually
- 每年一次 (0 0 1 1 *)@monthly
- 每月一次 (0 0 1 * *)@weekly
- 每周一次 (0 0 * * 0)@daily
或 @midnight
- 每天一次 (0 0 * * *)@hourly
- 每小时一次 (0 * * * *)示例:
@daily /path/to/command
crontab -l # 列出当前用户的crontab
crontab -r # 删除当前用户的crontab
重定向输出:建议将命令的输出重定向到文件或/dev/null
* * * * * /path/to/command > /var/log/command.log 2>&1
使用绝对路径:cron执行环境与用户登录环境不同,建议使用命令的绝对路径
设置环境变量:可以在crontab文件顶部设置环境变量
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=user@example.com
调试技巧:
系统级crontab:
/etc/crontab
文件/etc/cron.daily/
, /etc/cron.hourly/
等目录希望这个指南能帮助你设置Linux定时任务!如有特定需求,可以提供更多细节,我可以给出更具体的配置建议。