Как определить, находится ли файл в отложенном состоянии?

Как определить, находится ли файл в отложенном состоянии?

Как узнать, находится ли файл или файлы в отложенном состоянии с помощью bash? Есть ли способ это обнаружить?

образец:

при сохранении файла ядро ​​кэширует файл, но он еще не записан на диск. Это состояние D или отложенное состояние. Когда файл находится в отложенном состоянии, когда вы проверяете его, например php -r "var_dump(file_exists($filename));", ядро ​​отвечает, что файл есть. Но на самом деле файл еще не был записан на диск. И когда сервер перезапускается, файл исчезает.

событие произошло с нами, и я хочу предотвратить его или создать инструмент мониторинга, который обнаружит его и уведомит нас, чтобы мы могли скопировать файлы на другой сервер перед его перезапуском.

решение1

Я думаю, вы смотрите не на ту "проблему". Когда система перезапускается должным образом, процесс выключения гарантирует, что все данные будут записаны в постоянное хранилище.

Итак, проблема здесь в том, что перезапуск выполняется неправильно, что приводит к потере данных. Вам нужно изменить перезапуск, чтобы использовать shutdown -r nowили подобную команду.

решение2

Думаю, я нашел нужный инструмент. Он не совсем соответствует тому, что я искал, но я заставлю его работать.

это vmtouchкоманда, ее можно найти по адресуhttps://github.com/hoytech/vmtouch

Спасибо.

Связанный контент