crontab 入门:让服务器自己按时干活

举报
yd_266952352 发表于 2026/11/10 23:27:28 2026/11/10
【摘要】 每天凌晨备份、每小时清理日志,这些重复活都该交给 crontab。五分钟学会用五个字段安排一切定时任务。

每天凌晨备份、每小时清理日志、每周生成报表——这些重复活都该交给 crontab。它把定时规则压缩成五个字段,学会就能让服务器自己按时干活。

一、五个字段怎么读

crontab 一行一个任务:分 时 日 月 周。0 3 * * * 每天凌晨 3 点;*/10 * * * * 每 10 分钟一次;30 2 * * 1 每周一凌晨 2 点半。crontab -e 编辑当前用户的任务表,crontab -l 查看列表,记忆口诀:分时日月周,星号全都要。

二、新手必踩的三个坑

第一,环境变量和 shell 不一样:cron 的 PATH 很短,脚本里要么用绝对路径(/usr/local/bin/python),要么在 crontab 里显式设置 PATH。第二,注意输出丢失:任务报错你看不到,除非重定向——追加 >> /var/log/myjob.log 2>&1,排查问题全靠这份日志。第三,时区:服务器若是 UTC,你写的凌晨 3 点其实是北京时间 11 点,date 确认时区再排程。

三、写任务的姿势

别把长串命令直接塞进 crontab,写成脚本文件再调度:一行一个职责,脚本里 cd 到工作目录、加载环境、加锁防重入(flock 一条命令搞定),出错时返回非零退出码。这样 crontab 只负责「何时」,脚本负责「做什么」,两边都好维护。

验证任务是否真的会跑:先手动执行脚本确认成功,再进 crontab,几分钟后看日志文件有没有内容。systemd timers 是更现代的替代品,但 crontab 仍是所有 Linux 服务器的通用语言。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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