Linux 入门:用 crontab 设置定时任务

举报
f841705799 发表于 2026/11/11 09:39:33 2026/11/11
【摘要】 每天手动备份文件、清理日志、定时拉取数据,重复做几次就会觉得很麻烦。其实 Linux 自带了一个很好用的定时任务工具 crontab,它可以让系统在指定的时间自动执行命令或脚本。学会它,你就等于给电脑请了一个从不偷懒的小助手。 一、什么是 crontabcrontab 是 cron 服务的配置文件管理工具。cron 是 Linux 系统中负责定时任务的守护进程,它每分钟检查一次有没有到期的任...

每天手动备份文件、清理日志、定时拉取数据,重复做几次就会觉得很麻烦。其实 Linux 自带了一个很好用的定时任务工具 crontab,它可以让系统在指定的时间自动执行命令或脚本。学会它,你就等于给电脑请了一个从不偷懒的小助手。

一、什么是 crontab

crontab 是 cron 服务的配置文件管理工具。cron 是 Linux 系统中负责定时任务的守护进程,它每分钟检查一次有没有到期的任务,到时间就自动执行。

每个用户都可以有自己的定时任务列表。系统管理员也可以为整个系统设置任务。日常使用中,我们最常用的是给自己的账号添加任务,比如每天凌晨备份、每周清理临时文件。

二、crontab 的时间格式

一条定时任务由五个时间字段加一条命令组成,格式如下:

分 时 日 月 星期 命令

五个字段的取值范围分别是:分(0-59)、时(0-23)、日(1-31)、月(1-12)、星期(0-7,其中 0 和 7 都代表星期日)。星号 * 表示“每一个”,比如日的字段写 *,就是每天都执行。

还可以用几个特殊符号让表达更灵活。逗号表示列举,例如 1,15 表示 1 号和 15 号;横杠表示范围,例如 1-5 表示星期一到星期五;斜杠表示步长,例如 */10 表示每 10 分钟执行一次。

三、常用示例

下面是几个新手最常用、可以直接套用的例子:

# 每天凌晨 2 点执行备份脚本
0 2 * * * /home/user/backup.sh

# 每 5 分钟检查一次服务状态
*/5 * * * * /home/user/check_service.sh

# 每个工作日早上 9 点提醒自己查看报表
0 9 * * 1-5 echo "该看今日报表了" >> /home/user/reminder.txt

# 每月 1 号凌晨 3 点半清理旧日志
30 3 1 * * find /var/log/myapp -name "*.log" -mtime +30 -delete

# 每周日午夜重启一次测试服务
0 0 * * 0 systemctl restart my-test-service

写命令时建议使用绝对路径,不要只写脚本名。因为 cron 执行任务时的环境变量和登录 shell 不一样,写相对路径很容易找不到文件。

四、查看、编辑与删除任务

新建或修改任务,用 crontab -e 打开编辑器,按提示写入规则后保存即可。第一次使用时系统可能会让你选择编辑器,新手选 nano 更容易上手。

查看当前账号已有的全部任务,用:

crontab -l

如果想删除某一条任务,先用 crontab -e 打开,把对应的行删掉保存;如果想清空全部任务,可以用 crontab -r,但这条命令没有确认提示,执行前一定要再三确认。

改完任务不需要重启 cron 服务,它每分钟会自动读取最新的配置。如果任务没有按预期执行,可以先检查时间字段有没有写错,再确认脚本本身在命令行里能不能正常运行。

五、新手容易踩的坑

第一,输出要重定向。定时任务的输出不会显示在屏幕上,建议把结果写到日志文件里,方便排查问题,例如在命令后面加上 >> /home/user/backup.log 2>&1。

第二,脚本要有可执行权限。写完脚本记得执行 chmod +x backup.sh,否则 cron 会因为权限不足而失败。

第三,时间写清楚再保存。0 2 * * * 是每天凌晨 2 点,而 * 2 * * * 是 2 点的每一分钟,差一个星号,执行次数就完全不同。

第四,先在命令行里手动跑一次。脚本能手动跑通,再放进 crontab,这样出了问题也更容易定位是脚本的问题还是定时规则的问题。

结语

crontab 看似只有五个字段,组合起来却能覆盖绝大多数日常定时需求:备份、清理、提醒、巡检、定时拉取数据。先从每天执行一次的小任务开始练手,熟练后再尝试更复杂的组合。把重复的工作交给系统,你的时间就能留给更值得做的事情。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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