你是不是经常需要在服务器上重复执行某些任务?比如每天凌晨备份日志、每周清理缓存,或者每隔一小时检查服务状态。手动执行太麻烦,用脚本循环又不稳定。其实,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 分钟学会,用起来一辈子省心。




评论(0)