Linux 中的计划任务 - crontab

crontab

计划任务类别

在 Linux中有两类计划任务:

at:仅执行一次,比如 2 个小时后关机

crontab:定时执行,比如每天 02:00 执行数据库备份脚本

工作中最常用的便是 crontab,本文将详细介绍该命令使用方式。

操作计划任务

# 查看计划:
crontab -l

# 编辑任务:
crontab -e

# 删除全部任务,若要删除一项,请使用 crontab -e
crontab -r

# 查看日志
tail -fn 10 /var/log/cron

计划任务语法

一个 crontab 任务由六段组成:

分钟小时日期月份命令
0 -590-231-311-120-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