三秒后,应急电源启动的“嗡”声响起,屏幕重新亮起。这一次,上面的数据流平静得像一潭死水,没有攻击请求,没有异常警告,连正常的监测数据都像是被冻住了,一动不动。
“攻击…… 停止了?” 有人怯生生地问,声音在寂静里飘着,带着不确定的颤。
林江瘫坐在主机旁的地板上,后背的衬衫早已被冷汗浸透,贴在身上凉得刺骨。他抬手抹了把脸,掌心全是湿黏的汗。墙上的电子钟显示——凌晨四点四十分,距离预定泄洪时间还有两小时二十分钟。他盯着屏幕上服务器的各项指标:CPU使用率回落到35%,内存占用率42%,网络流量趋于平稳……那些碎片化的攻击数据包被应急防火墙成功拦截在缓冲区,红色的“拦截成功”提示像救命符一样跳着。
“检查核心数据库。” 林江的声音抖得不成样子,他想站起来,腿却软得像面条。
小李手忙脚乱地调出数据库校验程序,指尖在键盘上敲得飞快,屏幕上滚过一行行校验代码。五分钟后,他猛地转过身,声音里带着哭腔:“林哥!所有泄洪参数完好!闸门控制指令库未被篡改!监测设备数据同步正常…… 我们守住了!我们真的守住了!”
指挥中心先是死一般的寂静,接着爆发出震耳欲聋的欢呼。有人猛地把键盘往桌上一推,瘫在地上捂着脸痛哭,哭声里全是劫后余生的庆幸;有人互相抱着肩膀跳起来,笑声和喊声搅在一起;小张趴在桌上,肩膀一抽一抽的,眼镜滑到鼻尖也没顾上推——哭声和笑声交织在一起,撞在四壁上,反弹回来,震得墙壁都嗡嗡作响。林江看着窗外,天边已经泛起鱼肚白,淡淡的青白透过窗户洒进来,落在满是咖啡渍和代码的桌面上。他突然觉得眼前一黑,脑子里“嗡”的一声,失去了意识,一头栽倒在键盘上,脸颊贴在冰凉的键帽上,还能感受到刚才敲键时留下的余温。
他做了个很长的梦。梦里是小时候,他跟着爷爷在淮河岸边走,那时的河水清得能看见水底的鹅卵石,爷爷牵着他的手,掌心粗糙却暖和。爷爷指着缓缓流淌的河水说:“水是活的,你敬它一尺,它就还你一丈。但你要是糊弄它,它也会翻脸——守水的人,得有颗实诚心。” 梦里的河水声很清,清得像风铃。
醒来时,林江发现自己躺在指挥中心角落的行军床上,身上盖着件带着烟味的外套——是王磊的,他总爱偷偷在楼梯间抽两口。窗外的天已经亮透了,阳光透过百叶窗,在地上投下一道道金亮的条纹。
“林哥你醒了!” 小张端着个白瓷碗跑过来,眼睛红肿得像核桃,睫毛上还沾着没干的泪痕,“你都睡了快两小时了!陈教授带着他的团队早上六点就到了,已经接管系统维护了,让我们都去休息!还有还有,刚才上级来电话,说要给我们记集体一等功!”
林江接过粥碗,碗沿还带着温热的触感。白粥熬得稠稠的,上面漂着几点翠绿的咸菜,热气往上冒,模糊了他的眼镜片。他突然笑了,笑出声来,笑声里带着点劫后余生的沙哑。他想起三天前收到的匿名威胁短信,“识相点就让开,不然别怪我们不客气”;想起黑客在攻击代码里藏着的挑衅语句,用注释写着“你们的防御像纸糊的”;想起刚才小张跳起来时带翻的饮料瓶,想起小李通红的眼睛,想起张伟抓电话时发抖的手——那些紧绷的、焦虑的、却从未后退过的瞬间,此刻都浸在粥的热气里,变得软乎乎的。
“通知大家。” 他舀起一勺粥,吹了吹,热气扑在脸上,暖得让人鼻子发酸。“别睡了,吃完这碗粥,我们去泄洪现场盯着。没亲眼看着水位降下去,我不放心。”
七点整,第一缕阳光越过防汛指挥中心的楼顶,金色的光像流水一样漫下来,把楼顶的红旗染得发亮。林江站在河边的观测台,风从河面吹过来,带着水汽的凉。远处的泄洪闸门正缓缓升起,“嘎吱——嘎吱——”的机械声隔着水传来,带着厚重的力量感。浑浊的洪水裹挟着泥沙,像脱缰的野马奔涌而下,在河道里画出一道壮阔的弧线,溅起的水花在阳光下闪着碎金般的光。他身边的监测屏幕上,水位曲线正平稳下降,每一个跳动的数据都恰到好处——从警戒水位以上2.3米,一点点往下落,每落0.1米,观测台里就响起一声低低的欢呼。
“下游乡镇报告,暂无人员伤亡,转移群众已全部安置到临时避难所。” 对讲机里传来工作人员清晰的汇报声,声音里带着难掩的轻快。
林江掏出手机,屏幕上还留着那个匿名威胁短信的截图。他指尖在屏幕上滑了一下,按下了删除键。风从河面吹来,带着潮湿的泥土气息,还混着远处麦田里的麦香,像是在诉说着河流的古老智慧——水会记得每一次守护,也会冲刷掉所有的恶意。