年初时工班发现工作站和服务器都没办法用ntpq看时钟同步了,如下图所示。输入ntpq-p 就显示"The specified class was not found"
通过排查,发现中央服务器和工作站均出现,本地工作站部分有,2台NMS则完好,Linux机子也显示正常。由于系统对时钟要求很高,出现此情况后立刻检查应用服务器状态,同样看不到。
1、但通过抓包和防火墙日志,可以看到与时钟服务器通信的包,证明不是网络问题。
2、人为调错工作站时间(5、10分钟),观察在1小时后,能够同步正常时钟,证明时钟同步进程(ntpd)工作正常。
3、尝试复制正常配置文件、重装ntp软件都无法修复此问题。
4、回溯先前做的操作,NMS没有此问题,加上前一次也有ATS软件升级导致Ruby用不了的情况,便怀疑是ATS升级影响的,但承包商未无法重现,给出的解决方案是重装系统,这是不可接受的:一涉及数量多工作量太大,二未查明原因后续仍可能再出现。
5、此故障在网上没有找到相同案例,但是了解到process monitor软件,为微软官方出品。可记录进程行为。利用软件记录ntpq出错时段。对比发现在到winrnr.dll后,有一条不同,而后续不正常的机子的记录比正常机子少了不少,说明此为关键节点。
如上图,异常机在查找不到services文件后不久就退出线程了,因此找到正常机的文件拷
贝过去,立马就恢复了ntpq的功能,如下图: