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 服务器的通用语言。
- 点赞
- 收藏
- 关注作者
评论(0)