如何偵測檔案是否處於延遲狀態?

如何偵測檔案是否處於延遲狀態?

使用 bash 如何知道一個或多個檔案是否處於延遲狀態?有沒有辦法檢測到這一點?

樣本:

儲存文件時,核心會快取該文件,但尚未寫入磁碟。這是 D 狀態或延遲狀態。當其延遲狀態時,當您檢查類似的檔案時php -r "var_dump(file_exists($filename));",核心會做出回應,是的,檔案就在那裡。但實際上,該檔案尚未寫入磁碟。當伺服器重新啟動時,該檔案就消失了。

該事件發生在我們身上,我想阻止它或創建一個監視工具來檢測它並通知我們,以便我們可以在重新啟動之前將文件複製到其他伺服器上。

答案1

我認為你正在看一個錯誤的“問題”。當系統正確重新啟動時,關閉過程將確保所有資料都寫入永久儲存。

所以,這裡的問題是重啟方式錯誤,導致資料遺失。您需要更改重新啟動以使用shutdown -r now或類似的命令。

答案2

我想我找到了這個工具。不完美我正在尋找的東西,但我會讓它發揮作用。

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

謝謝。

相關內容