📖 知识点回顾
crontab -e/-l:编辑、查看定时任务cron 五格:分 时 日 月 周
>>追加输出到文件脚本 + 定时 = 无人值守自动化
💡 交付套路写脚本 → 配 cron 定时 → 输出重定向到日志 → 用日志验证是否执行 → 排查异常
⚔️ Kata 实战任务(收官实战)
任务需求:
写一个 "备份脚本",把日志写到
~/备份日志.txt用 crontab 配一个每 1 分钟执行的定时任务(便于马上验证)
等待 1~2 分钟后,用
cat查看日志,确认任务真的自动执行了用
crontab -l查看任务配置汇总:验证结果 + 排查思路
参考代码(在终端依次敲)
# 1. 写一个备份脚本(含日志)
vim 备份.sh
# 内容:
# #!/bin/bash
# mkdir -p 备份
# cp *.txt 备份/ 2>/dev/null
# echo "$(date) 备份完成" >> /home/user/备份日志.txt
# (:wq 保存退出)
# 2. 配定时任务:每1分钟跑一次(便于验证)
crontab -e
# 加一行:
# * * * * * /home/user/备份.sh
# 保存退出
# 3. 等1~2分钟,查看日志确认已执行
cat /home/user/备份日志.txt
# 4. 查看任务配置
crontab -l
运行示例:
user@linux:~$ crontab -l
* * * * * /home/user/备份.sh
(等待1分钟后)
user@linux:~$ cat /home/user/备份日志.txt
2026-10-29 10:00:01 备份完成
2026-10-29 10:01:01 备份完成
💡 观察:每 1 分钟任务自动执行,日志里出现两条 "备份完成" 记录,时间正好间隔 1 分钟。这就证明 cron 真的到点干活了,日志就是它的 "考勤记录"。
排查思路(任务没执行时)
crontab -l确认任务配置在不在看日志文件:任务写了日志,但没记录 → 检查时间是否到点
脚本手动跑一遍
bash 备份.sh,确认脚本本身能运行检查路径:脚本 / 日志用绝对路径,避免相对路径问题
权限:脚本要可执行(
chmod +x),用户有权限写日志目录
⚠️ 易错提醒
日志一定要用绝对路径,别写相对路径(cron 环境没有 "当前目录" 概念)
脚本先手动
bash跑通,再交给 cron,好排查日志是排查的 "眼睛":任务有没有跑、跑没跑成功,都看它
🧠 思考题
为什么定时任务的脚本和日志要写 "绝对路径"?相对路径在 cron 里有什么坑?
如果到点了日志里没有新记录,按什么顺序排查?(提示:任务配置→脚本能否跑→路径→权限)
行者孙Python