crontab 入门:让 Linux 替你记住那些重复的活儿

举报
yd_283162409 发表于 2026/10/29 08:50:39 2026/10/29
【摘要】 每天 9 点跑一次脚本、每小时清一次临时文件、每周日凌晨备份一次数据库——这些重复的活儿,不用你天天守着,交给 crontab 就行。它是 Linux 上最常用的定时任务工具,学会 5 个时间字段,就能把大多数定时需求 cover 掉。一、crontab 的时间怎么写一条定时任务由 5 个时间字段加 1 条命令组成,字段之间用空格隔开:分 时 日 月 周 命令每个字段的取值范围是:分 0–5...

每天 9 点跑一次脚本、每小时清一次临时文件、每周日凌晨备份一次数据库——这些重复的活儿,不用你天天守着,交给 crontab 就行。它是 Linux 上最常用的定时任务工具,学会 5 个时间字段,就能把大多数定时需求 cover 掉。

一、crontab 的时间怎么写

一条定时任务由 5 个时间字段加 1 条命令组成,字段之间用空格隔开:

分 时 日 月 周 命令

每个字段的取值范围是:分 0–59,时 0–23,日 1–31,月 1–12,周 0–7(0 和 7 都代表周日)。星号 * 代表“每一个”,比如第一个字段写 *,就是每分钟都跑。

二、几个一看就懂的例子

每天早上 9 点跑备份脚本:0 9 * * * /home/user/backup.sh

每 30 分钟清一次临时目录:*/30 * * * * rm -rf /tmp/cache/*

每周一凌晨 3 点重启服务:0 3 * * 1 systemctl restart myapp

每月 1 号凌晨 4 点打包日志:0 4 1 * * tar -czf /backup/logs.tar.gz /var/log/myapp

三、开始用它:三个命令

编辑自己的定时任务:crontab -e;查看已有任务:crontab -l;删掉全部任务:crontab -r(删之前先备份,小心驶得万年船)。

四、新手最容易踩的三个坑

第一,环境变量。cron 跑任务时用的环境很“干净”,你在终端里能用的 PATH、别名它都认不到,所以命令最好写绝对路径,脚本第一行写好解释器。

第二,百分号。命令里如果有 %,cron 会把它当成换行,得用反斜杠转义,或者干脆把复杂逻辑写进脚本、让 cron 只调脚本。

第三,没有输出就等于没有证据。任务跑没跑、报错没有,全靠日志:把输出重定向到文件,比如追加到 /var/log/backup.log,出问题时才有据可查。

五、写在最后

定时任务的意义不是“偷懒”,而是把确定性的事交给机器,把人的注意力留给不确定的事。从今天起,把你每周重复做的一件小事写进 crontab——先从一条开始,跑起来,再慢慢加。机器记得住,你就不用记了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。