crontab 是 Linux 系统中用于设置周期性执行任务的工具。下面我将详细介绍如何编写 crontab 定时执行脚本。
crontab 的基本格式如下:
* * * * * command_to_execute
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └── 星期几 (0 - 6) (0 表示星期日)
│ │ │ └──── 月份 (1 - 12)
│ │ └────── 日期 (1 - 31)
│ └──────── 小时 (0 - 23)
└────────── 分钟 (0 - 59)
每分钟执行一次:
* * * * * /path/to/script.sh
每小时的第5分钟执行:
5 * * * * /path/to/script.sh
每天凌晨2点执行:
0 2 * * * /path/to/script.sh
每周一上午8点执行:
0 8 * * 1 /path/to/script.sh
每月1号中午12点执行:
0 12 1 * * /path/to/script.sh
每5分钟执行一次:
*/5 * * * * /path/to/script.sh
工作日上午9点到下午5点,每小时执行:
0 9-17 * * 1-5 /path/to/script.sh
*
:匹配所有值,
:指定多个值(如 1,3,5
)-
:指定范围(如 1-5
)/
:指定间隔(如 */10
表示每10单位)编辑当前用户的 crontab:
crontab -e
查看当前用户的 crontab:
crontab -l
删除当前用户的 crontab:
crontab -r
环境变量:cron 执行环境与用户登录环境不同,建议在脚本中使用绝对路径或在脚本中设置 PATH 变量。
输出处理:cron 任务的输出默认会通过邮件发送给用户,可以重定向输出:
* * * * * /path/to/script.sh > /dev/null 2>&1
权限问题:确保脚本有可执行权限:
chmod +x /path/to/script.sh
日志记录:建议添加日志记录:
* * * * * /path/to/script.sh >> /var/log/script.log 2>&1
测试:添加任务后,建议先手动运行脚本测试,确保它能正确执行。
除了用户级 crontab,还可以使用系统级 crontab:
- 编辑 /etc/crontab
- 或添加脚本到 /etc/cron.d/
目录
- 系统级 crontab 需要指定执行用户:
* * * * * username /path/to/script.sh
希望这些信息能帮助你设置 Linux 定时任务!如有更具体的需求,可以提供更多细节,我可以给出更精确的配置建议。