计划任务类别
在 Linux中有两类计划任务:
at
:仅执行一次,比如 2 个小时后关机
crontab
:定时执行,比如每天 02:00 执行数据库备份脚本
工作中最常用的便是 crontab
,本文将详细介绍该命令使用方式。
操作计划任务
# 查看计划:
crontab -l
# 编辑任务:
crontab -e
# 删除全部任务,若要删除一项,请使用 crontab -e
crontab -r
# 查看日志
tail -fn 10 /var/log/cron
计划任务语法
一个 crontab
任务由六段组成:
分钟 | 小时 | 日期 | 月份 | 周 | 命令 |
---|---|---|---|---|---|
0 -59 | 0-23 | 1-31 | 1-12 | 0-8 | 需要执行的命令 |
特殊字符:
特殊字符 | 代表意义 | 例子 |
---|---|---|
* | 任意时刻 | |
, | 枚举时段 | * 3,6 * * * command 表示 03:00 和 06:00 执行 |
- | 范围时段 | 30 3-6 * * * command 表示 03:00 - 06:00 之间每个小时的 30 分执行 |
/ | 间隔执行 | */5 * * * * command 表示每隔 5 分钟执行一次 |
计划任务权限
/etc/cron.allow
:将可以使用 crontab
的账号写入其中
/etc/cron.deny
:将不可以使用 crontab
的账号写入其中
最佳实践
- 用户级别计划任务使用
crontab
命令 - 系统级别计划任务使用
/etc/crontab
编排 - 开发软件可以使用
/etc/cron.d/newfile
- 尽量不要把大量耗时任务排到同一时刻执行
- 输出日志如果无关紧要的话可以重定向给
/dev/null
参考资料:
- 《鸟哥的 Linux 私房菜》
crontab
可视化工具 crontab guru