教程
Linux crontab 定时任务指南:让服务器自动干活
什么是 cron
AI 示意图·以 man 手册为准
cron 是 Linux/Unix 系统的定时任务守护进程,crontab 则用来维护每个用户的定时任务表。写好规则后,cron 会在指定时间自动执行命令,适合日志清理、定时备份、监控检查等重复性工作。
基本语法:五个时间字段
crontab 每行一个任务,前五个字段依次表示分钟、小时、日、月、星期:
| 字段 | 取值范围 | 说明 |
|---|---|---|
| 分钟 | 0-59 | 第几分钟执行 |
| 小时 | 0-23 | 第几小时执行 |
| 日 | 1-31 | 每月第几天 |
| 月 | 1-12 | 月份 |
| 星期 | 0-7 | 0 或 7 表示周日 |
支持星号()、范围(1-5)、列表(1,15)、步进(/10)以及 @reboot、@daily 等快捷写法(以 man 手册为准)。
常用表达式速查
| 需求 | 表达式 |
|---|---|
| 每天 2:30 执行 | 30 2 * * * |
| 每小时执行一次 | 0 * * * * |
| 每 10 分钟执行 | */10 * * * * |
| 每周一至周五 9 点 | 0 9 * * 1-5 |
| 每月 1 日和 15 日 | 0 3 1,15 * * |
| 重启后执行一次 | @reboot |
常用管理命令
| 命令 | 作用 |
|---|---|
crontab -e |
编辑当前用户任务表 |
crontab -l |
列出当前用户任务表 |
crontab -r |
删除当前用户任务表 |
crontab -u 用户名 -l |
查看指定用户任务表(需权限) |
实战:三个高频场景
1. 定期清理日志
每天凌晨清理超过 7 天的日志:
30 3 * * * find /var/log/myapp -type f -mtime +7 -delete
2. 定时备份数据库
每天 2 点把数据库导出到备份目录:
0 2 * * * mysqldump -u 用户 -p密码 数据库 > /backup/db_$(date +\%F).sql
注意:cron 中
%需要转义为\%(以 man 手册为准)。
3. 监控脚本定时执行
每 5 分钟检查一次服务状态,异常时写入日志:
*/5 * * * * /opt/scripts/check_web.sh >> /var/log/check.log 2>&1
建议把命令输出重定向到日志文件(>> ... 2>&1),方便事后排查。
排错:任务没执行怎么办
AI 示意图·以 man 手册为准
- 查日志:Debian/Ubuntu 常见位置
/var/log/syslog,可 grep cron 相关记录(以发行版为准); - 看权限:脚本要有执行权限,命令尽量写绝对路径;
- 验语法:手动先跑一遍命令本身,确认能成功;
- 注意环境:cron 环境变量精简,依赖 PATH 的命令建议写全路径。
常见问题

1. crontab 能执行带参数的命令吗? 可以,整行剩余部分都会作为命令执行(以 man 手册为准)。
2. 时区怎么设置? 可通过 CRON_TZ 或系统时区设置控制,具体以手册为准。
3. 多个时间字段同时限定时如何执行? 日与星期同时限定(都不为 *)时,任一匹配即执行(以 man 手册 crontab(5) 为准)。
4. 任务输出去哪里? 未重定向的输出会以邮件形式发给任务所有者(若系统配置了邮件),建议主动重定向到日志文件。
官方资料
资料核对日期:2026-10-29
- Linux man 手册 crontab(5):https://man7.org/linux/man-pages/man5/crontab.5.html
- Ubuntu Manpage crontab(5):https://manpages.ubuntu.com/manpages/noble/man5/crontab.5.html
- Ubuntu Manpage crontab(1):https://manpages.ubuntu.com/manpages/noble/man1/crontab.1.html
最近一周热门文章
按近 7 天访问热度排序,热度积累前优先展示新文章。
当前栏目最新文章
教程 · 继续阅读同栏目的新内容
一起交流
0 条留言LEAVE A NOTE
你的经验,也很重要。
无需注册或登录。请勿公开邮箱密码、证件、银行卡号或其他敏感信息。
















还没有留言,来分享你的想法吧。