今年组里来了三个新人,一个应届,两个转行。我带了一个月,血压上去好几次,但回头想想,也把自己当年踩的坑重新看了一遍。

第一个新人,应届生,科班出身,Linux 命令背得滚瓜烂熟。有次他处理一个告警,磁盘满了,他跑过来问我:哥,df 显示 100%,但 du 加起来对不上,怎么回事?

我说你先想想。他站在原地想了半分钟,说:是不是有进程删了文件但没释放?

我说对,lsof | grep deleted 看看。他查完回来,眼睛都亮了:找到了,是个日志进程,文件被删了但 fd 还握着,空间没释放。

我说,这就是答案,truncate 一下或者重启进程,你自己看着办。他三下五除二处理完,很开心。

其实这个坑我当年是踩了两次才记住的。第一次是 rm 完发现空间没变,我以为机器坏了,重启了才释放。第二次才知道要先 lsof 查。新人能自己想出来,说明他真在动脑子。

第二个新人就让我头疼了。转行来的,基础弱,但特别勤快,就是有点"什么都想问"。

系统慢,他第一反应是问我:哥,系统慢怎么办?我说你自己先看看。他过一会儿又回来:哥,我看不懂。我叹了口气:你看到什么了?他说 CPU 高。我说那你看是哪个进程。他说不会。

那天下午我啥也没干,就陪他看 top、ps、strace 怎么用。教到一半我问他:你是不是觉得,问我一嘴比我教你快?他说是。

我说,你问我一嘴,你只会这一次;你自己查一遍,下次就会了。我当年师傅就这么教我的,当时我也嫌他烦。后来我才明白,他不是不想告诉我,是告诉我也没用——下次换个场景,我还是不会。

第三个新人最有意思。他来了两周,天天看文档,笔记记得特别工整,但一上手就懵。有次让他去重启一个服务,他小心翼翼地问:要不要先备份配置文件?

我说你先把 systemctl status 看清楚,确认是哪个服务、状态什么样,再动手。他说他怕搞坏。我说你怕搞坏是好事,但你不能因为怕就不动手——你可以在测试环境练,练熟了再来生产。他后来在测试环境把服务反复重启了二十多次,终于不慌了。

一个月下来,第一个新人已经能独立处理大部分告警了,第二个开始自己查日志了,第三个虽然慢,但每一步都稳。

我带他们的过程中,最深的感受是:教人这事,最难的不是讲清楚,是忍住不替他把活干了。你替他把活干了,他永远学不会;你让他自己查,他看着慢,但那个"查"的过程,才是他真正长本事的地方。

写这个的时候我想起我师傅。他当年也是这么对我的——什么都不直接说,就一句"你自己先查查"。当时觉得他冷漠,现在轮到自己带人,才懂那句话里有多少耐心。