凌晨三点十分,告警刚消停,说个憋了一礼拜的事。
上礼拜三,不对,周四凌晨,我翻老爷子U盘里那批老脚本,接着往下翻新。翻到一个清归档日志的,思路挺清楚,按年份月份分目录,超过九十天的删。这种脚本我手上也有,但老爷子那版写得稳,先算、再列清单、最后才动手删,注释里还写着哪年哪台机器上删错过。我心想这不就是现成的,拿来改改就能上。
改完跑,第一行就报错,No such file or directory,指着一个目录。我 ls 了,目录在,明明白白在那,cd 进去也行,手敲一遍那条 find,跑的比谁都欢。放回脚本里,还是报不存在。
这么一个事,卡了我小一个礼拜。
中间我干了什么,说出来都嫌丢人。查了挂载,那台机器,就是库存系统那台,10.20 的,df 我都看了三遍,也不是 NFS 的老毛病。权限我也查了,root 跑的脚本,能没权限?软链接也想过,readlink 看完没有。后来我甚至开始怀疑是不是连错机器了,因为有两台的机器名就差一个字母,我差点去改主机名。
白班交接的时候那个兄弟问我脚本翻新得怎么样了,我说快了快了,卡个小问题。他说什么问题,我一开始还认真讲,讲到第三句他眼神就飘了,我也就不讲了。
后来我让 AI 陪我看。它一上来也是那句,说这个目录不存在,请先创建。我说在,我 ls 过。它说那可能是权限问题,我说 root。它说那可能是软链接,我说不是。来回几轮它也懵了,让我把 ls -l 的输出贴给它,看完说路径完全正常。我说废话。
说到这个,今天凌晨两点四十,刚压掉一波磁盘告警,我坐那儿发呆,突然想起来 cat -A 这命令。好久没用了,真的好久。
一敲,出来一行,路径末尾吊着个 ^M,中间那截 ./scripts/ 里还夹了个全角空格,就是中文输入法那个空格,宽的一批。Vim 里看不出来,ls 看不出来,终端里看着也正常。就这俩东西,一个回车符一个全角空格,卡了我小一个礼拜。
哪来的我现在大概能猜着,老爷子那U盘里的文件在 Windows 上编辑过,或者是我自己从哪个文档里复制路径粘进去的,反正就那么粘了一下,谁记得。
删了重敲,一路跑到底,日志清了,报告也发出来了。
那种感觉就是烦,特别烦,然后有点想笑,想把键盘扣桌上。这种事没法跟白班兄弟说,说了他们只会笑,笑完还得问你那脚本什么时候能上。
先这样,四点还有个巡检。