Cron 定时任务入门让服务器每天自动做重复的事
很多新手运维服务器,第一步都是手动做事:每天登录上去备份一次、每周清一次日志。事情一多就漏,漏一次可能就是数据没备份、磁盘被日志塞满。Cron 解决的就是这个问题:它是一个一直在后台跑的定时服务,你把“什么时候、做什么”写成一行规则,它就到点执行,不用你守着。
Cron 的规则由 5 段时间加一条命令组成,从左到右依次是:分、时、日、月、星期。比如每天凌晨 2 点半跑一次备份,写成:
30 2 * * * /home/user/backup.sh
星号表示“每个都算”,所以前两项定死了时间,后三项是星号,就是每天都跑。常见的几种写法要先记熟:每小时跑一次是 0 * * * *,每周一早上 9 点是 0 9 * * 1, 每月 1 号凌晨 3 点是 0 3 1 * *。星期这里 0 和 7 都表示星期天,1 到 6 是星期一到星期六,新手最容易在这里写错。
写规则之前,先把要做的事写成一个脚本文件,别直接把一长串命令塞进 Cron 里。脚本开头加一行 #!/bin/bash,写好后给它执行权限:
chmod +x /home/user/backup.sh
然后用 crontab -e 打开自己的定时任务表,把规则粘贴进去保存;用 crontab -l 可以查看当前已经写好的任务。系统级的定时任务在 /etc/crontab 里,格式多一个“以哪个用户执行”的字段,普通用户用 crontab -e 就够了,别一上来就改系统文件。
新手踩坑最多的有三点。第一是路径问题:Cron 执行时的环境变量和你登录终端不一样,相对路径、没写全的命令都可能找不到,脚本里一律写绝对路径,命令也写全路径最稳妥。第二是没日志:任务跑没跑、报错没有,全靠日志说话,规则末尾加上 >> /home/user/backup.log 2>&1,把输出和错误都写进日志文件,出问题先看日志,别猜。第三是权限问题:脚本没给执行权限、要写的文件目录没写权限,任务就会静默失败,跑之前先手动执行一次脚本,确认没问题再交给 Cron。
最后说一个好习惯:定时任务先从低频开始试。比如先设成每 5 分钟跑一次,确认日志正常、结果正确,再改成每天一次。一下子设成每月一次,错了要等一个月才发现,得不偿失。备份、清理这类任务尤其要先验证恢复流程:备份文件能解压、能恢复,才算真的备份成功,光看日志里写了“完成”是不够的。
总结一下:Cron 入门就是记住一句话,5 段时间定时间、脚本加日志防翻车。先写一个每天自动清理旧日志的小任务练手,跑通了,再把备份、同步这些重复劳动一个个交给它,服务器就从“要人盯着”变成了“自己干活”。
- 点赞
- 收藏
- 关注作者
评论(0)