/dev/null 上的时间戳不断更新

/dev/null 上的时间戳不断更新

我一直在处理 AIX 系统上的 /dev/null 文件问题(仅从背景来看,它看起来好像被某人无意中删除并重新创建为正常文件),但在尝试确定问题的原因时,我注意到该文件上的时间戳似乎每分钟都会更新。我在工作场所的几台 AIX 服务器上都观察到了这种情况。

目前我不能完全排除这是我工作场所使用的应用程序所特有的问题,所以昨晚我在家里与基于 CentOS 和 Debian 的计算机进行了比较。

运行了 24 小时的 CentOS 机器在 /dev/null 上的 mod 时间大约为 4 天前(在此期间,它基本上只是被用作 Web 浏览器和多媒体播放器,尽管它会在后台运行活跃但基本上未使用的 Apache、MySQL 和 VMM 进程)。

Debian 机器(即刚刚启动的笔记本电脑)上的 /dev/null 上的时间戳几乎反映了启动时间,但我测试了将 STDIN 重定向到它并将 STDOUT 重定向到它,修改时间没有变化(我不能 100% 确定将数据定向到 /dev/null 是否构成像写入普通文件那样“写入它”)。

所以我的问题本质上是,有人可以就什么情况(权限更改等)可能导致 /dev/null 上的时间戳更新提供任何建议吗?

非常感谢您的任何建议。

亚历克斯。

答案1

所以我的问题本质上是,有人可以就什么情况(权限更改等)可能导致 /dev/null 上的时间戳更新提供任何建议吗?

在我熟悉的大多数系统上,完全相同的情况会导致任何文件的时间戳更新:创建(更新ctime)、访问(更新atime)或修改(更新mtime)。

  • 创建当创建设备节点时,应该只发生一次。
  • 使用权 在这种情况下实际上只应该与修改一起发生(没有人会阅读/dev/null......)
  • 修改每次有人将输出传输到时都会发生这种情况/dev/null

我不知道为什么你的 Debian 系统不这样做(尽管我已经验证过我桌上的 Ubuntu 机器不会在/dev/null我将输出发送到那里时更新时间,所以这几乎肯定是与它们的 devfs 实现相关的 Linux/Debian 的事情)。

您的 AIX 系统应该在访问设备时忠实地更新设备时间 - 包括/dev/null。BSD(FreeBSD 9.x)的行为类似,我相信 Solaris 也是如此,但我没有 Solaris 机器可以测试。


你应该问的更大的问题是“哪个白痴删了/dev/null?!“这样您就可以找到它们并以它们为例(显然,如果您还没有这样做,您应该删除常规文件/dev/null并重新创建正确的设备节点。重新启动也可能需要,因为某些程序可能保持常规文件/dev/nullinode 打开并仍在写入它...)。

相关内容