我给出了命令ls -lt来查看哪些日志文件不断被写入,因为如果它们被写入,修改时间将几乎非常接近 date 命令的输出。
但奇怪的是,对于所有不断修改(写入)的日志文件,ls命令输出中的修改时间显示为 12 分钟。例如,如果我给出命令
date ; echo ; ls -lt *log
如果获取日期的输出为Sun Jan 19 16:48:16 IST 2014,则 ls -lt *log 命令的输出会在给出命令时写入一段时间,将文件详细信息显示为:
-rw-r--r-- 1 root 12014 6.2M Jan 19 16:36 Imap.log
现在这里的 Imap.log 文件不断被写入,所以修改的时间应该也非常非常接近16:48,但是可以看出,正好是16:36。足足相差12分钟。
date 命令的输出是正确的。我尝试使用简单的ls -l以及stat filename来查看那里的详细信息,甚至stat命令也显示Modify时间戳为 12 分钟。
正在写入日志文件的分区安装在 NFS 上。那是罪魁祸首吗?我需要检查什么?
操作系统是 CentOS 5.4。内核为 2.6.18-164.el5。
检查 NFS 挂载选项。actimeo选项以秒为单位定义文件属性缓存,在您的情况下可能配置为几分钟。这通常由系统管理员完成,以尽量减少从客户端到服务器的 NFS 调用次数,以获取文件的元数据。