楼梯比陈扶苏预想的要长。
入口处的台阶还是普通的水泥质地,表面有防滑槽,和一般办公楼的地下通道没什么区别。但走了大约三层楼高度之后,台阶的材质变成了金属的——网格状的钢板,踩上去有轻微的回声,像是走在某种工业设施的检修通道上。两侧的墙壁也从抹灰墙面变成了深灰色的金属板,每隔几米嵌着一盏应急灯,发出暗绿色的冷光。
周野跟在他身后三四级台阶的位置,手里攥着手机打开手电筒模式,光柱在金属墙壁上晃来晃去,偶尔扫过墙面上残留的缆线槽和拆了一半的支架。
"你来过这里吗?"陈扶苏问,声音在窄长的楼梯间里有一点回响。
"来过两次。都是被叫下来的,不是自己来的。"周野的声音比他更闷一些,像是压着嗓子在说话,"一次是项目上线前做压力测试,下来看服务器跑得稳不稳。另一次是——你被带走之后,我来签交接文件。"
"交接什么?"
"你工位上的私人物品清单。"周野说,"公司那边说'按规定离职员工的物品需要代理人确认',我就来了。下来之后在一个会议室里签了四五张纸,全程有两个穿西装的人站在旁边看着。"
"他们没为难你?"
"没有。"周野说,"可能觉得我就是个写代码的,什么都不知道。"
陈扶苏没再问,继续往下走。
走到大约第六层楼深度的时候,楼梯到底了。尽头是一扇双开的金属门,门面光滑无窗,门上有一个电子锁面板,键盘上的数字在暗光中泛着白绿色的背光。面板旁边有一个很小的标志牌,银色的底面上刻着一行黑字:
"B3·核心机房·非授权人员禁止入内"
陈扶苏站在门前面,把平板掏出来调出密码记录。他对照着上面那串六位数字,一个一个按下去。
电子锁面板上的指示灯从红色变成了绿色,发出一声短促的"嘀"。门锁内部传来机械结构转动的声响,然后是气压释放的嘶声——门沿着滑轨向两侧缓缓打开。
门后是一条短走廊,走廊尽头是另一个房间。他走进去,脚步在金属网格地板上落下轻微的脚步声。
房间比他想的大。
大约一百多平方米的方形空间,天花板很高,大约有四米多,顶部嵌着一整排已经熄灭的灯条。房间中央的地面上有十几处规整的方形凹陷——那是之前放服务器机柜的位置,每一个凹陷的边缘都有固定螺栓的孔洞和残留的缆线接口。四周的墙壁上有几排已经被清空的设备架,架子的隔板上积了灰,灰尘被时间压实成了一层薄薄的灰壳。
空气是凉的和干燥的,带着一种金属和旧电路板混合的气味。安静到能听见头顶通风管道里偶尔传来的气流声。
周野跟进来,手机手电筒的光扫过整个房间一圈,在墙壁和地板之间留下晃动的长影。
"东西全搬空了。"他说。
"对。"陈扶苏走到房间中央,蹲下来看了看地面上的一个螺栓孔。他伸手摸了一下孔洞的边缘,指腹上沾了一层极细的灰。但孔洞本身是干净的——灰尘被什么工具刮过,露出了底部金属原本的银灰色。"有人来过这里,不是搬服务器的时候。"
"你怎么知道?"
"搬服务器的人不会专门刮螺栓孔。只有找东西的人才会。"
他把手指收回来,站起来,环顾整个房间。然后他穿过机柜之间的通道,走向房间最里面的一面墙壁。那面墙上有一块比周围颜色更浅的方形区域,像是曾经挂过什么东西后来被摘掉了——大概是一块大屏幕,或者整墙的监控显示器。
方形区域的右下角有一个凹槽,尺寸很小,比一张名片大不了多少,凹槽底部有一层薄薄的、闪着微弱光泽的涂层。他把手机凑近了照——那层涂层是金属的,像是某种导电材料在干燥之后留下的残迹。
"这里之前放的什么?"周野走过来问。
"一块控制面板。启动服务器集群用的物理按键。"陈扶苏伸出手指在凹槽边缘比划了一下,"尺寸和那个凹槽刚好吻合。"
"你怎么知道?"
"记忆回来了。"陈扶苏站起来,拍了拍手指上的灰,"三年前我就是在这里启动的第一批机柜。"
他转过身,重新看向房间中央那片方形凹陷区域。十几处凹陷的空位整齐排列,像是棋盘上被拿走了所有棋子之后留下的格痕。他脑海里浮现出它们被填满时的样子——银灰色的服务器机柜依次排列,每台机器顶部的指示灯以稳定的节奏闪烁蓝绿色光,散热风扇的声音整个房间嗡嗡地响着,像置身于一架飞机的引擎舱。
"那时候这里有多少台服务器?"周野问。
"四十八台。"陈扶苏说,"两个冗余备份组,六个核心节点。全部运行的时候,地下三层的地板会发热,我在上面铺过橡胶垫。"
周野沉默了一下:"你记得这么细。"
"因为是三年前写过的代码。"陈扶苏说,"写完的东西要是不记得,那三年就白写了。"
他沿着房间边缘走了一圈,在靠西面的墙壁停下。那里有一排设备架,架子底部和地板相接的地方有一道很窄的缝隙,不仔细看几乎注意不到。他蹲下来,把手机的光凑近那道缝隙,看到缝隙里卡着一卷东西——黑色的、大约两指宽、被卷成了一个小筒状。
他把手指伸进去,夹住那卷东西轻轻往外抽。阻力不大,像是放进去的时候就没有塞太深。抽出来之后,他发现是一卷电工胶带,和市面上常见的那种没什么区别,但胶带的中心筒上缠着一层纸,纸上写着几行小字。
他展开那张纸。字迹很熟悉——三年前他自己的笔迹,比塔里那些铭牌上的字稍微工整一些,像是在安静状态下写的,没有赶时间的仓促感。
纸上写着:
"如果你看到这个,说明你找到了正确的地方。服务器可能已经搬走了,但那不重要。真正的数据不在机柜里——在墙里。西面第三块金属墙板后面有一条备用光纤线槽,里面有我埋的第一份完整日志。取的时候小心,线槽边角比较锋利。"
周野站在他身后,弯着腰也看到了那几行字。
"你三年前把东西埋墙里了?"
"显然。"陈扶苏把纸条折好放进口袋,走到西面墙壁前开始数墙板。金属板表面是统一规格的,但他凭着记忆找了找——第三块的位置在他的视线水平略低一些,他伸手按住板子的边缘,用力往侧面推了一下。
墙板没有动。他又试了试往上提,有轻微的松动感。他加了点力气,金属板沿着隐藏的滑轨缓缓向上滑动了几厘米,露出后面一个大约手臂宽的空间。
里面确实有一段光纤线槽,黑色的细管沿着墙体内的空腔向下延伸。线槽外面绑着一小包东西——用防静电袋密封着,袋口反复折叠了两次再用胶带封紧。他把它取出来,打开防静电袋,里面是一块普通的U盘,银灰色外壳,没有任何标记。
U盘的接口上缠着一根细铜线,铜线末端系着一张小标签,上面只写了两个字:
"保险。"
陈扶苏把U盘拿在手里翻转着看了看。外壳很新,封口处的胶带也没有明显的氧化痕迹,说明这里面的空气密封得不错。
"这一份和备份里那份有什么区别?"周野问。
"备份是'我要做什么'。这一份是'我做完了什么'。"陈扶苏把U盘收进外套内袋,"三年前的我留了两份记录。备份给周野——或者说给我自己——是一份'计划书'。埋墙里的这份是'竣工报告'。你那份压缩包里缺的密钥,应该就在这里。"
他把墙板重新推回原位,金属卡槽发出轻微的"咔嗒"一声,恢复了原状。
整个房间依然安静,灯光依然是暗绿色的应急照明和手机手电筒的暖白色光束交织。陈扶苏站起身,活动了一下蹲久了有些发酸的双腿,走到房间的出口处回头看了一圈。
四十八台机柜的位置空空荡荡,灰尘均匀地覆盖在每一处凹陷的底部。那些凹痕像是被挖掉的字母槽,曾承载过一整段被他亲手刻进去的代码。
"你看着它像什么?"周野站在出口旁边问。
周野没问为什么这么说,只是点了点头,关掉手机手电筒,两个人沿着来时的楼梯往上走。金属台阶在他们脚下发出规律的脚步声,应急灯一盏一盏地向后退去。
走到地面的时候,阳光从门缝里照进来,落在楼梯间最后一级台阶上。空气的温度忽然升高了几度,室外街道上的声音——远远的车声、行人对话的片段、某家店的喇叭声——重新变得清晰可闻。
陈扶苏推开那扇小铁门走出去的时候,眯了一下眼睛。
阳光已经完全升起来了,明亮、有些刺眼,把楼前空地照得发白。他把碎花布袋从肩膀上取下来,确认里面的熊还在——那只熊趴在一堆零碎杂物上面,蓝色眼睛微微闪了一下,像是在说"还在"。
"回店里?"周野锁上小铁门,转过身来问。
"回你店里借台电脑。"陈扶苏拍了拍外套内袋里那块U盘的位置,"我要看看三年前到底写了多少东西。"
他们沿着来时的路往回走。阳光把两个人的影子拉得很短,贴着脚后跟跟着走。路边的梧桐树叶在风里翻动着光面,有几片早黄的叶子落下来,旋了一圈停在人行道的砖缝里。巷口的早餐摊已经收了,换成了一个卖水果的板车,橘子和苹果码得整整齐齐,在阳光下反射出润泽的光。
走到周野店门口的时候,陈扶苏的手机震了一下。
他掏出来看了一眼,是沈栀发来的照片。照片里是一条处理好的鲈鱼,鱼身上划了几道花刀,搁在白色盘子里,旁边放着切好的姜片和葱段。照片底下跟了一行字:
"鱼腌好了。你大概几点回?"
陈扶苏站在店门口,一只胳膊夹着熊,另一只手拿着手机打字:"两三点左右。鱼不急,等我回来做。"
沈栀回了一个"好"字,后面跟了一个表情——一只小火柴人站在门口,门里亮着灯,表情包和他那本《栀》里通关画面的像素画几乎一模一样。
陈扶苏对着那个表情包看了两秒,然后把手机放回口袋,弯腰跨进了周野的店。
店里的咖啡早就煮好了,一直保温着。周野把U盘插到自己那台改过的笔记本电脑上,让出键盘位置,转身给他倒了一杯咖啡放在桌角。
"你看吧。"周野说,"我先把今天没来得及磨的豆子磨了。"
陈扶苏在柜台后面坐下来,手指悬在键盘上方停了一瞬,然后开始读取U盘里的内容。
文件列表在屏幕上展开。第一个文件名是:
"完工日志_20231102.txt"
他点开了它。
作者寄语: