
Как узнать, находится ли файл или файлы в отложенном состоянии с помощью bash? Есть ли способ это обнаружить?
образец:
при сохранении файла ядро кэширует файл, но он еще не записан на диск. Это состояние D или отложенное состояние. Когда файл находится в отложенном состоянии, когда вы проверяете его, например php -r "var_dump(file_exists($filename));"
, ядро отвечает, что файл есть. Но на самом деле файл еще не был записан на диск. И когда сервер перезапускается, файл исчезает.
событие произошло с нами, и я хочу предотвратить его или создать инструмент мониторинга, который обнаружит его и уведомит нас, чтобы мы могли скопировать файлы на другой сервер перед его перезапуском.
решение1
Я думаю, вы смотрите не на ту "проблему". Когда система перезапускается должным образом, процесс выключения гарантирует, что все данные будут записаны в постоянное хранилище.
Итак, проблема здесь в том, что перезапуск выполняется неправильно, что приводит к потере данных. Вам нужно изменить перезапуск, чтобы использовать shutdown -r now
или подобную команду.
решение2
Думаю, я нашел нужный инструмент. Он не совсем соответствует тому, что я искал, но я заставлю его работать.
это vmtouch
команда, ее можно найти по адресуhttps://github.com/hoytech/vmtouch
Спасибо.