你是不是经常需要在服务器上重复执行某些任务?比如每天凌晨备份日志、每周清理缓存,或者每隔一小时检查服务状态。手动执行太麻烦,用脚本循环又不稳定。其实,Linux系统自带的 Cron 就能完美搞定这类定时任务,而且只需要 3 分钟就能上手。

—

什么是 Cron 定时任务?

Cron 是 Linux 下的一个守护进程,它能够按照预定的时间表自动执行命令或脚本。你只需要编写一个“定时规则”,Cron 就会在指定的时刻自动运行你设定的任务。常见用途包括:系统维护、数据备份、日志轮转、网站健康检查等。

!

(https://sc.wanxi.co/wp-content/uploads/2026/06/ai-image-20260617054124-1.jpg)

Cron 的配置非常简单,所有用户都可以通过 crontab 命令管理自己的定时任务,而系统级别的任务则存放在 /etc/crontab 或 /etc/cron.d/ 目录中。对于普通用户来说,掌握 crontab 命令就足够了。

—

Cron 的基本语法

Cron 的定时规则由 5 个字段加一个命令组成,格式如下:

分钟 小时 日 月 星期 命令

每个字段的取值范围:

| 字段 | 取值范围 | 说明 |
|——–|————|————————|
| 分钟 | 0 – 59 | 每小时的第几分钟 |
| 小时 | 0 – 23 | 每天的第几小时 |
| 日 | 1 – 31 | 每月的第几天 |
| 月 | 1 – 12 | 一年的第几个月 |
| 星期 | 0 – 7 | 0 或 7 都表示星期日 |

特殊符号:

– * 表示任意值(所有可能的值)
– , 分隔多个值(如 1,15 表示第1分钟和第15分钟)
– - 表示范围(如 1-5 表示星期一到星期五)
– / 表示间隔(如 */5 表示每5分钟)

举个例子:如果想让任务在 每天凌晨 2 点 30 分 执行,规则就是:

30 2 * * * /path/to/command

—

实战:创建一个简单的定时任务

现在我们就动手创建第一个 Cron 任务。假设我们需要每天凌晨 3 点备份 /var/log/nginx/access.log 到 /backup/ 目录下。

第一步:编辑用户的 crontab

在终端输入以下命令打开当前用户的定时任务编辑器(默认使用 vi 或 nano):

crontab -e

如果是第一次使用,系统会提示你选择编辑器。选择你熟悉的即可。

第二步:编写定时规则

在打开的编辑器中,添加一行:

0 3 * * * cp /var/log/nginx/access.log /backup/access_$(date +%Y%m%d).log

注意:在 crontab 中,% 需要转义为 %,否则会被解释为换行符。也可以将命令写成脚本文件,然后在 crontab 中调用脚本,这样更清晰。

第三步:保存并退出

保存文件(在 vi 中按 Esc,输入 :wq 回车)。此时终端会输出类似 “installing new crontab” 的信息,表示任务已安装成功。

验证任务是否生效

可以使用 crontab -l 列出当前用户的所有定时任务:

crontab -l

输出应该包含你刚刚添加的那一行。

—

管理 Cron 任务

学会创建任务之后,还需要掌握查看、删除和修改的方法。

查看当前用户的定时任务

crontab -l

删除所有定时任务

crontab -r

这个命令会直接清空当前用户的所有 crontab 条目,使用时请谨慎。

编辑现有任务

再次运行 crontab -e,修改后保存即可。如果你只是临时想禁止某个任务而不删除,可以在该行前面加上 # 注释掉它。

查看系统日志确认任务执行

Cron 的执行记录通常保存在 /var/log/syslog 或 /var/log/cron 中。你可以用 grep 过滤出相关记录:

grep "CRON" /var/log/syslog | tail -20

这样就能看到最近执行的定时任务情况,有助于排查任务是否按预期运行。

—

好了,现在你已经掌握了 Linux Cron 的基本用法。从理解语法到实际创建任务,再到日常管理,整个过程确实只需要几分钟。下次当你有重复性工作需要自动执行时,不妨打开终端,用 crontab -e 写一条规则试试。3 分钟学会,用起来一辈子省心。

界面预览