crontab 入门:写第一个定时任务

举报
yd_290247903 发表于 2026/11/09 06:27:18 2026/11/09
【摘要】 本文从 crontab 的基本概念讲起,介绍五个时间字段的含义,手把手写出第一个每天凌晨 2 点执行的备份任务,并总结新手常踩的四个坑。

你有没有遇到过这样的场景:每天早上要手动备份一次文件,每隔一小时清理一次日志,或者每周一提醒自己检查磁盘空间。这些重复的事,其实不用天天盯着做,Linux 里有一个老牌工具可以帮你自动完成,它就是 crontab。

一、crontab 是什么

crontab 是 Linux 系统里用来设置周期性任务的工具,背后由 cron 守护进程负责执行。你只需要写一行规则,告诉系统“什么时间、执行什么命令”,剩下的就交给系统去办。

和一次性的延时执行不同,crontab 适合“每隔多久就做一次”的任务。比如每天凌晨备份数据、每小时清理缓存、每月 1 号生成报表,都是它的典型用法。

二、时间格式:五个字段要记牢

crontab 的每一行由六部分组成:分、时、日、月、周,再加上要执行的命令,写的时候从左到右依次是:

* * * * * 要执行的命令

每个星号代表一个时间字段,取值范围分别是:分钟 0 到 59,小时 0 到 23,日期 1 到 31,月份 1 到 12,星期 0 到 7,其中 0 和 7 都表示星期日。星号表示“每一个”,比如第一个字段写星号,就是每分钟执行一次。

三、写第一个定时任务

先确认 cron 服务正在运行,再打开 crontab 编辑器:

 systemctl status cron
 crontab -e

第一次打开时会让你选择编辑器,初学者选 nano 就可以了,它的操作提示都显示在屏幕下方,上手最容易。在编辑器里加上一行:

0 2 * * * /home/用户名/backup.sh >> /home/用户名/backup.log 2>&1

这一行的意思是:每天凌晨 2 点执行备份脚本,并把正常输出和错误输出都写进日志文件。保存退出后,任务就立即生效了,不需要重启任何服务。

四、常用写法对照

  • 每 5 分钟执行一次:*/5 * * * *
  • 每天 8 点 30 分执行:30 8 * * *
  • 每周一早上 9 点执行:0 9 * * 1
  • 每月 1 号凌晨执行:0 0 1 * *

记住一个小规律:想表达“每隔多久”就用星号加斜杠加数字,想表达“固定在某个时间”就直接写数字。

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

第一,命令要用绝对路径。crontab 执行任务时的环境变量很少,写相对路径很容易找不到文件,脚本路径和命令路径都要写完整。

第二,百分号要转义。命令里的百分号在 crontab 里有特殊含义,如果命令中非要用它,记得先写成反斜杠加百分号。

第三,任务没有执行,先看日志。Ubuntu 或 Debian 系统可以用 grep CRON /var/log/syslog 查找执行记录,CentOS 一系则查看 /var/log/cron,多数问题都能从日志里找到原因。

第四,先在命令行手动跑一遍。脚本在终端里能正常运行,再交给 crontab,这样可以排除大部分权限和路径问题,定位起来也快得多。

六、查看与删除任务

查看当前用户的全部定时任务,用 crontab -l;删除全部任务,用 crontab -r,执行前务必再三确认,因为它不经过回收站,删了就找不回来。只想改其中某一行时,用 crontab -e 进去修改保存即可。

结语

crontab 的学习成本很低,掌握五个时间字段和几个常用命令,就能把每天重复的琐事交给系统。从今天开始,试着把一件每天手动做的事写成定时任务,你会发现省下来的时间,远比想象中多。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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