第五十六章 · 核验¶
三月二十三号,周一,早上九点零六分,赵岩的消息进来,带一个附件。
上周五夜里,陈稳在机房外的值班位上待到一点,把二十一号口两个方向的流量都标了密级,原样导出。周末两天,机器没有再动。今早这份明细,是赵岩按他要的粒度拆完的。
「三月十九号告警那次,下行 475,136 字节,两分五十秒,TLS,对端是境内云的对象存储。SNI 是一个更新源域名,不是网盘。」
陈稳把 475,136 抄在纸上,调出王磊那份移交回执。孙宇的两块盘,二百一十七个文件,回执里每个文件带大小和校验值。按字节数搜。
一个。
inspect-agent-2.4.1.tar.gz。《机房巡检自动化》配套的巡检插件包。登记大小 475,136 字节,sha256 入库,校验值还在系统里。
他给赵岩回电话。
「孙宇交接盘里有一个包,字节数跟这次下行一模一样。」
「巧了?」
「一个字节不差,不是巧。」陈稳说。「《机房巡检自动化》第三十八页写了更新源和触发时间。季度任务,每季度第三个月的第三个周五,二十二点四十。三月十九号,对得上。」
赵岩在那头翻了十几秒历史流量。
「有了。去年十二月十八号,二十二点四十一,下行一次,大小一个数。再往前,九月十八号。一个季度伸一次手,平时一点流量都没有。」
「包更新过吗。」
「更新源的修改时间,二〇二五年十二月十七号。孙宇十二月三十一号走的。最后一次发版,在他离职前两个礼拜。」赵岩说。「这脚本糙,取下来对一遍就扔。写它的人图省事。」
「更新源还活着?」
「活着。bucket 挂在一个个人开发者账号底下。三个月流量费,三毛七,自动扣款,一天没断。」赵岩说。「有人还在给这台机器交话费。」
「包先存一份底。」陈稳说。「别从机房那台下,从你自己的机器下,下载完把校验值发我。」
「要这个干什么。」
「包现在的内容是孙宇留的。哪天它变了,就是有人动过那个源。变了,就是新的一条线。」
挂了电话,陈稳在本子上算了一笔账:三毛七,十六个月,五块九毛二。写脚本的人走了十六个月,扣款没停。要么是卡里的自动续费没人关,要么是有人一直记得这个东西还活着。
他分不清是哪一种。两种都比三毛七重。
十点半,纪衡的办公室门开着。陈稳把三样东西放在桌上:流量明细一页,《机房巡检自动化》第三十八页复印件,移交回执搜索结果的截图。
「三月十九号伸手的是钟,不是人。」陈稳说。「孙宇装的巡检 agent 还在跑,季度取一次更新包,包跟他交接盘里那份一个字节不差。」
「三月十一号那 3.8 GB 呢。」
「console 本地登录,十五分四十七秒。那是手。」陈稳说。「这台机器身上现在有两个动作。一口钟,一只手。钟是孙宇留的。手是谁的,不知道。」
纪衡把第三十八页翻过来,背面空白。
「agent 装在机器上,跑一天,记一天。」陈稳说。「巡检日志按天滚动,文档里写了路径,/var/log/inspect-agent/,保留四百天。从二〇二五年六月到现在,应该一天不缺。三月十一号在那四百天里。」
「那就是一本日记。」纪衡说。「三月十一号下午写没写字,只有它知道。日记在哪,你知道。锁在哪,你也知道。」
「钥匙还在锁里。」
「所以现在有人嫌锁碍事,想把整扇门拆了。」纪衡把复印件推回来。「三件事。第一,明天核验,你去。资产部两个人,安全合规一个。谁问了什么,谁看了什么,谁说了什么,原样记。第二,记在你的本子上,不进任何系统。第三,agent 只有这一台吗。」
「文档里没写装了几台。」
「让赵岩摸一遍。别用那台机器摸,也别惊动谁。」
「下一次伸手是六月十八。」陈稳说。「到六月,它还在不在,不一定。」
「轮不到六月。」纪衡说。「你先去核验。」
下午两点,差异通知改造第一批发送。汇金线十一月 431 笔差异单,状态字段换成 auto_accepted_notified,附全量导出链接:八月到二月,4,412 笔,96,340.00 元。按周其正上礼拜说的,先给整份数,不让第一封信是一张账单。
commit message 写:feat: auto_accepted_notified 第一批发送——汇金线先行,附 4,412 笔全量链接 / 先给账本,再给账单。
四点十分,马菁回了。
「收到。三天,核完给你话。」
四点十二分,又来一条。
「先问一句。这些单子,当时为什么不通知我们。」
陈稳把答案打出来,删掉两个字,重新发。
「通知的开关,去年八月一日被人关了。谁关的,在查。」
马菁隔了十一分钟回来。
「查到了告诉我一声。这四千四百笔里,有我们财务的章。」
周其正从斜对面把屏幕上这两句读完。
「你周报里那根没人答的钉子,组外面也有一根了。」他说。「两根钉帽对着,中间那条线,就是八月一日。」
「钉子多不怕吗。」王磊在旁边说。
「钉子怕什么。」周其正说。「怕的是墙。」
他手边摊着 2023 年的扫描结果。「全年扫完了。第七种状态之外,还有两处当年的写法没进映射表:一处手续费方向反着记,一处日期带汉字。都补了。2024 年扫完给你准数。」
「准数重要吗。」王磊说。
「准数不重要。」周其正把纸折起来。「重要的是历史里到底还埋着几个『当年』。埋着不打紧,打紧的是没人知道埋着。」
散会前,陈稳把上午那条死信放到投屏上。发件时间三月二十一号,星期天,晚上九点四十一分。落款处没有名字,只画了一个句号。
「两封死信,同一副笔迹。」
「一个句号。」周其正把投屏放大到能数清像素。「顾源的邮件里,句号是一封回信。」
「这人给顾源发过一封。」陈稳说。「三年前的方案,二十六页。」
「纸还找得回来吗。」
「打印件在。」陈稳说。「人找不回来。」
「那就先当活着。」周其正说。「他要是还醒着,第三季度的周五,他会再伸一次手。」
三月二十四号,周二。双写第七天,差异五笔,全部归因撤销状态的时间差,回放后归零。上午马菁又来一条:「核了两天,对出三笔我们这边记错,单子发回来了。剩下的四千四百零九笔,等你的『在查』。」
下午两点,三层东侧库房。声控灯,进门的人跺了一下脚才亮。
资产部来两个,带队的姓吕,管资产十一年;安全合规来一个,工单经办,姓秦。机柜从里数第三台,电源灯绿着,一秒眨一下。键盘上的灰没动过。
老吕对铭牌。资产标签 TPL-TC-0342 的贴纸卷了边,序列号跟台账一致。他拍了第一张照片,数硬盘位:两块,4 TB。
「二〇二五年六月入账,就是我验的货。」老吕说。「那会儿它还崭新,摆在孙宇桌上。三年不到,挪了三回:孙宇桌上,张毅桌上,这间库房。资产跟着人走。人走了,资产还在走。」
处置单打印件夹在板夹上,第四个节点空着:使用人确认——孙宇,离职;下一顺位,盘点签字人——张毅,三月十二日离职。
「两个节点都签不了。」老吕说。「流程挂满三十天,四月二十三号,自动转强制处置。到那天我们带消磁机过来,现场消,消磁记录归档,盘不留。」
秦把 SEC 工单编号报出来。「这张工单的责任主体是纪总监。同步工具的配置凭据,应该在那块盘里。盘一消磁,凭据没了,工单拿什么结?」
「那你们赶在消磁之前,把东西拿出来。」老吕说。「拿出来就得动盘,动盘就得解封。解封,谁签字?」
秦转过来问陈稳:「你是事件这边的人。你说。」
「工单上,纪总担责任。」陈稳说。「处置单上,没有他的位置。」
「那这张单子,现在是死的?」
「是挂着。」
「远期有四条。」陈稳说。「三条停了。停的当天没告警。」
「哪天。」秦往前凑了半步。
「八月一日,凌晨两点。」陈稳说。「root 账号,从内网一个地址进来,删了两条索引。」
秦把这句原样记了,笔尖顿住。「哪个地址。」
「你要是回去在工单系统里报,系统会自动抄送给域接口人。」陈稳说。「在这间屋里,地址就是一组数字。」
秦看了他两秒,合上本子。
「听懂了。」
老吕拍了六张照片,最后一张对着机柜整排:八台机器,只有这一台接着交换机,只有这一台的电源灯在眨。
出门的时候声控灯灭了。老吕在黑里说了一句:「这屋的灯要人跺脚。机器倒是一直醒着。」
回到工位,陈稳在本子上写:
合规要钥匙,处置要销锁。流程自己打了结。
解结的绳子,攥在两个不在场的人手里。
四月二十三号之前,得有人签。签的人,就得先认下这台机器跟他有关系。
最底下补一行:TPL-TC-0342 = 10.14.1.88。资产系统里一个名字,流量记录里一个名字,同一台机器。现在,第三张纸上也是。
下班前,抽屉最里层那张便签还在,一串非恒澜的邮箱地址,蒋辉的。备注那行写着:新公司下周五上线,数据对不上第一个找你。
下周五,就是三月二十六号。周五。
陈稳把便签抽出来,在背面添了一行:
3/26。它的数据对不上,会来。我们的数据,也快了。
便签放回去,跟四盒胃药放同一层。这一层现在压着两个人的话:一个走的人,一个走不掉的人。
六点四十,手机震了。马菁。
「三笔我们记错的,红字标好了。另外四千四百零九笔,我按月拆了附件。你说的『在查』,查到哪一步了。」
陈稳回:「核验做完了。流程有个结,在解。」
「结在哪。」
「两个人签了字,都不在了。」他打完,想了想,又加一句,「结快解了。解开那天,第一个告诉你。」
对面停了三分钟。
「行。」马菁说。「我们财务认结,不认拖。」
周三晚上八点二十,何晚的电话打进来。陈稳看了三响,接了。
「你爸上周又去河边钓鱼,钓了一下午,一条没有。」她说。「你妈把照片发我了。」
「他那个技术,十年了。」
「我跟他说了。他说,鱼不重要,坐着重要。」何晚的声音跟以前一样平。「陈稳,问你个事。上次我跟你爸打招呼,说的是排期的问题。你后来跟家里人,是怎么讲的。」
「我说是我的问题。」
「哪方面的问题。」
「排期。」他说。「我说的跟你一样。」
电话那头安静了几秒。远处有公交车进站的声音。
「你把这个当排期。」她说。「行。我把这句记下了。」
「药还在吃。」他说。
「我知道。你爸说的。」她说。「陈稳,我挂了。周末别总吃面。」
电话挂了。他把通话时长看完:四分二十二秒。他想起一月二十一号那通电话,也是四分零六秒,打给一个不认识的人,说自己是谁。这通打给一个认识八年的人,说到最后,互相都没有说出那个字。
他把手机扣在桌上。
三月二十六号,周五。
早上九点十五,蒋辉的消息进来,一个非恒澜的域名发到陈稳个人邮箱,正文没有称呼,直接是数据:auto_brief 上线第一天,新公司的结算数据对不上,差百分之七点三,时间集中在每天四点到五点。
附件是导出的明细,三千多行。
正文最后一句:「说好的,第一个找你。」
陈稳把明细打开,按小时聚合,四点到五点的差值曲线抖了两下,抖的形状他认识。他回了一行:
「时区。你们上游按 UTC 写时间戳,对账窗口按本地时间切。四点到五点,是八小时的边界。」
四分钟后,对面回来一句:「半小时改完。谢了。」
又过两分钟,再来一条:「你们那边呢。听说你的核验做完了。」
陈稳把这句读完,没有回。他调出纪衡的对话框,打了一行:「蒋辉上线了,第一天就撞上时区问题。他的数据渠道是活的。」打到一半,删了。蒋辉的新公司跟八月一日那条线没有关系,这条信息不该进那本账。
他把草稿删干净,在本子上另起一行:
3/26。蒋辉的钟走了。我们的一只在库里,一只在路上。
十点差五分,三楼小会议室。门开着,桌上两杯水,一盒纸巾。
陈稳把本子翻开,压在左手边。三月十一号十五分四十七秒,两条上行命令的时间戳,库房交换机二十一号口的三个数字,他前天晚上背到一点。
十点整,前台的内线进来:「陈工,有人找。说是十点的。」
张毅在门口。比三月十二号那天瘦了,穿一件没有工牌挂绳的夹克,手里一支笔,没有包。
他在门口站了一秒,先开口:「机柜从里数第三台。」他说。「那间屋的灯,得跺脚才亮。」
陈稳把椅子往对面推了半掌。
「坐。」他说。「从二十分钟说起。」
晚上九点十二分,个人邮箱进来一封信。
发件域名是一家做外贸 SaaS 的。签名档空着,落款两个字:张毅。这个邮箱地址,只挂在恒澜的通讯录里,张毅三月十二号之前能看到。
正文四行。
「陈稳: 处置单先别往下走。流程一转强制,有些东西就再也拿不回来。 三月十一号下午,我在那间库房待过二十分钟。我动过那台机器,没有拿走任何东西。上传的人不是我。 有些事得当面说。给我一周。」
陈稳把第二行读了三遍。
知道三月十一号上行的,一共三个人:他,赵岩,纪衡。再加一个安全合规的经办,名字他不知道。张毅不在里面。这个人知道的东西,比名单上的三个人少,比公司其他所有人多。
他先验信。发件域名的注册信息是匿名的,发信服务器查不出人。信里没有一个只有纪衡知道的数字,也没有一个只有他自己知道的数字。写这封信的人,要么真在库房待过那二十分钟,要么从知道上传这件事的人嘴里听过。
三月十一号是周四,下午两点零七分。那间库房门禁平时不锁,没有摄像头。进去,不留记录。
他想起去年十月,周其正在二号楼说过的一句话。可能查到最后,是你不想知道的那个人。
现在这个人自己走回来了。
他把信原样转给纪衡,正文一行:「张毅来信。说三月十一号下午他在库房。」
七分钟后,电话进来。
「怎么验真假。」纪衡说。
「邮件验不了。能验人。」陈稳说。「机器在机柜从里数第三台,这件事没写进任何记录。去过那间屋的人,张嘴就能对上。」
电话里停了两秒。
「我赌的就是这一步。」纪衡说。「周五上午十点,三楼小会议室。你主问,我坐边上。技术 VP 那边我去报备,范围到报备为止。」
「问什么。」
「先把三月十一号那十五分四十七秒,一笔一笔背熟。再问他,八月一日凌晨,他的卡为什么在机房刷了三次门。」纪衡说。「他要是提凭据,告诉他,凭据好好的,在锁里。」
「他要是问核验呢。」
「核验是真的,死结也是真的。」纪衡说。「让他自己挑一头解。」
陈稳写了回信,三行:
「周五上午十点,公司三楼小会议室。前台报我名字。 库房的事,你当面讲。 带上笔。口头的话,人一走就死。」
发送。
日历翻到周五那格,他写下「张毅,十点」。那格的角落里有一行上个月就写好的小字:auto_brief 在蒋辉的新公司上线,也是这天。
抽屉最外层,四盒胃药并排,旧盒剩三粒。他没动。
关台灯之前,对面那扇冷白灯的窗还亮着。家具的影子比上周又多了一件,方方正正,像一张桌子,方向朝着这边。
← 第五十五章 两清 · 目录 · 第五十七章 交货 →