如何检测文件是否处于延迟状态?

如何检测文件是否处于延迟状态?

如何使用 bash 知道一个或多个文件处于延迟状态?有没有办法检测这一点?

样本:

保存文件时,内核会缓存该文件但尚未写入磁盘。这是 D 状态或延迟状态。当其处于延迟状态时,当您检查文件时php -r "var_dump(file_exists($filename));",内核会做出响应,是的,文件在那里。但实际上,该文件尚未写入磁盘。当服务器重新启动时,文件就消失了。

该事件发生在我们身上,我想阻止它或创建一个监控工具来检测它并通知我们,以便我们可以在重新启动之前复制其他服务器上的文件。

答案1

我认为你看错了“问题”。当系统正确重启时,关机过程将确保所有数据都写入永久存储。

因此,这里的问题是重启方式错误,导致数据丢失。您需要将重启更改为使用shutdown -r now或类似命令。

答案2

我想我找到了这个工具。虽然不是我想要的完美工具,但我会让它发挥作用。

它是一个vmtouch命令,可以在以下位置找到https://github.com/hoytech/vmtouch

谢谢。

相关内容