我下达了命令ls -lt查看哪些日志文件正在不断被写入,因为如果它们正在被写入,那么修改时间几乎会非常接近 date 命令的输出。
但奇怪的是,ls命令的输出显示所有正在被连续修改(写入)的日志文件都是 12 分钟前的。例如,如果我给出命令
date ; echo ; ls -lt *log
如果获取日期的输出为2014 年 1 月 19 日星期日 16:48:16 IST,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, 还统计文件名在那里查看详细信息,甚至统计命令显示调整时间戳为12分钟前。
写入日志文件的分区安装在 NFS 上。这是罪魁祸首吗?我需要检查什么?
操作系统是CentOS 5.4。内核是2.6.18-164.el5。
答案1
检查 NFS 挂载选项。actimeo选项以秒为单位定义文件属性缓存,根据您的情况,可能将其配置为几分钟。这通常由系统管理员完成,以尽量减少从客户端到服务器的 NFS 调用次数,以获取文件的元数据。