为出海而探索,为选择多想一步。CROSSBORDER GEEK / K8N.COM
K8N跨境极客CrossBorder Geek

教程

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

最近一周热门文章

按近 7 天访问热度排序,热度积累前优先展示新文章。

当前栏目最新文章

教程 · 继续阅读同栏目的新内容

一起交流

0 条留言

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

LEAVE A NOTE

你的经验,也很重要。

无需注册或登录。请勿公开邮箱密码、证件、银行卡号或其他敏感信息。

更多阅读
K8N · CrossBorder Geek

给出海玩家、独立开发者、跨境博主与外贸人的选型笔记。

关于这个博客 ↗