我主要处理位于 NFS 安装的网络共享上的文件。自从最近的 IT 升级以来,与此 NFS 安装的网络连接似乎不太稳定——每天,在我工作期间,我都会断网几秒钟,导致程序冻结或关闭,当我尝试保存在 IDE 中打开的修改文件时,会出现“找不到文件”之类的错误消息,等等。
IT 支持人员要求在开始修复问题之前提供详细的错误报告,目前我除了“我无法保存/复制/写入此文件,但 10 秒后我就可以了”之外无法向他们提供任何信息。
我的问题是
- 是否有一个日志实用程序可以在后台运行,以监视与 NFS 挂载的连接(例如,我可以让 nfsiostat 或 icpld 执行我需要的操作吗?),以便我遇到此问题后可以将日志发送给 IT 支持人员以供他们检查?
- 我该如何设置这样的记录器,以便它包含足够/正确的信息,以便他们找出问题所在?
答案1
你需要证明某件事是错误的,这有点奇怪,但无论如何,这似乎是生活中的事实,所以:根据你想要/需要/知道的内容,你可以:
这两者结合起来:
ping -D -i 2 1.2.3.4 > /var/log/ServerName.log
在一个最小化的终端中,tail --follow /var/log/ServerName.log
在另一个最小化的终端中。在出现问题的最初几个小时内,查看是否与网络有关。
和
一个在本地机器上运行的脚本,它每 2 秒在您的一个 NFS 目录上重命名一个文件,并记录无法重命名的时间。
#!/bin/bash while true do mv /szNFSMount/TestFile.1 /szNFSMount/TestFile.2 if [ $? -ne 0 ]; then echo $(date) >> /var/log/NFSMount.log fi sleep 2 mv /szNFSMount/TestFile.2 /szNFSMount/TestFile.1 if [ $? -ne 0 ]; then echo $(date) >> /var/log/NFSMount.log fi sleep 2 done
为什么把这两个放在一起?一个 ping
是极低的层次:数据链路层,另一个是极高的层次:应用层。它们结合在一起,形成了无可辩驳的证据。
- 做NFS 调试这是一件很棘手的事情和您需要拥有自己机器的 root 访问权限。您有吗?