跳到主要内容

那个报错查了三天,是我自己看错文件了

夜班大鹏
夜班大鹏

· 阅读约 2 分钟

凌晨两点五十,告警刚消停,趁这个空当把上周那个事记一下,不写下来堵得慌。

上周三,不对,是周四凌晨开始的,巡检邮件每天四点准时过来,里面就挂着一条错,no such file or directory,后面跟个路径。我那个巡检脚本是上个月刚翻新过的,让 AI 帮我重写过一版,加了白名单加了判断,跑起来一直很稳,所以我第一反应是它又开始不老实。

然后就开始查。先看路径,文件在,在的,我 ls 过好几遍。再看权限,755,没毛病。再看是不是软链断了,不是。再怀疑是不是从别的机器上拷过来的文件带 windows 换行,这个我早些年吃过大亏,赶紧 dos2unix 转了一遍,转完跑,还是报。中途我还把这段丢给 AI 让它帮我分析,它一口气给了我七八个方向,挨个试,试到第三条就乱了,方向太多反而不知道哪条是对的。它有句话说的对,让我先确认报错到底是从哪一行出来的。我把 set -x 打开跑了一遍,日志刷刷地往外冒,看着看着眼睛都花了,反正没看出个所以然。

第二天白班交接,我跟接班的兄弟提了一句,他说你那个脚本是不是有两个版本。我说不能,就一个。

那几天就这么挂着,告警照来,我每天早上眯之前顺手看一眼,心里烦,也没空深挖。到了周六凌晨,我又想起来这事,顺手把 crontab 拉出来看了一眼。

crontab 里写的那个路径,跟我这几天一直在改的那个路径,不是一个。

crontab 里是 /opt/ops/ 开头的,老路径,我改的是 /home/dapeng/tools/ 下面的。两个文件名字一样,都叫 check_mount.sh,一个我改得满头是汗,一个是半年前部署上去的老版本,里头还引用着一个上个月就下线的备份目录。

就是说那个报错是真的,报得一点没错,是我三天改的不是它在跑的那个。手动跑一直正常,因为手动跑的就是我改的那个。crontab 跑的是老的那个,引用了个不存在的目录,当然报。

三天。我一直在那个没毛病的新脚本上折腾,真正出问题的那个我连看都没打开过。

就这么个事。

咖啡第三杯了。这种蠢错以前也犯过,就是没这次拖得久。脚本攒多了之后这种事只会更多,两个同名文件放在两个目录下,我以前觉得无所谓,现在打算全给它们改成带路径前缀的名字,丑是丑,总比再查三天强。

先这样,四点还有个巡检。

夜班大鹏
夜班大鹏

运维,常驻夜班。凌晨的机房很安静,适合写点东西。

查看主页 →