Linux 定时任务神器:Crontab 完全指南

掌握 Crontab 的基本语法、常用操作及进阶技巧,让你的服务器自动化运行。

什么是 Crontab?

Crontab(Cron Table)是 Linux/Unix 系统中用于设置周期性执行任务的工具。它像是一个 24 小时待命的“闹钟”,可以在指定的时间点自动执行备份、清理日志或运行脚本。

远思为径,码动价值。 优秀的自动化脚本能为系统运维节省大量时间。


核心语法

Crontab 的每一行规则由 5 个时间参数1 个待执行命令 组成:

* * * * * command
┬  ┬  ┬  ┬  ┬
│  │  │  │  └─ 星期几 (0 - 6, 0 代表周日)
│  │  │  └─ 月份 (1 - 12)
│  │  └─ 每月第几天 (1 - 31)
│  └─ 小时 (0 - 23)
└─ 分钟 (0 - 59)

特殊符号说明

  • *:代表任意值(每分钟/每小时…)。
  • ,:代表多个不连续的时间点(如 1,3,5)。
  • -:代表连续的时间范围(如 1-5)。
  • /:代表步长/频率(如 */10 代表每 10 分钟一次)。

常用操作指令

在终端中,你可以通过以下命令管理任务:

命令 说明
crontab -e 编辑当前用户的定时任务 (Edit)
crontab -l 查看当前已有的定时任务 (List)
crontab -r 清空当前用户的所有任务 (Remove)

实战案例

任务描述 表达式
每分钟运行一次 * * * * * /path/to/cmd
每小时整点运行 0 * * * * /path/to/cmd
每天凌晨 2:30 运行 30 2 * * * /path/to/cmd
工作日(周一至五)早上 9:00 0 9 * * 1-5 /path/to/cmd

避坑与进阶建议

1. 使用绝对路径

Cron 运行时的环境变量(PATH)非常有限,建议使用完整路径:

  • 推荐: /usr/bin/python3 /home/user/myscript.py

2. 重定向输出日志

由于 Cron 在后台运行,建议将结果记录到文件以便排查:

* * * * * /path/to/script.sh >> /tmp/cron.log 2>&1

感谢阅读,欢迎在评论区交流。