定时任务为什么没执行
任务写了、也存盘了,到点却没动静 —— 按顺序查这五处。
先确认任务真的被读到了
改完定时任务表之后没有重载,或者文件存错了位置,都会出现"写了但没跑"。第一步是把当前生效的任务表打印出来,确认它和你以为的一致。
环境变量不是登录环境的
定时任务的执行环境和你登录终端时不一样,路径往往更短,也不会读取登录脚本。任务里用到命令时,尽量写绝对路径,别依赖简写名称能不能找到。
输出没人接就会丢
任务如果有输出而没有任何人接收,很多实现会直接丢弃。排查阶段应当把标准输出和标准错误都定向到一个文件,这样失败才看得见。
时区与重叠
机器的时区决定了"每天几点"到底指什么时候。另外,上一个任务还没跑完下一个又起来,两次执行互相踩,也会表现成"没生效"。
最后查权限
有些任务需要读特定文件或写特定目录,在终端里能跑是因为你的身份有权限,换一个执行身份就未必。这类问题往往只在定时任务里出现。