Como você detecta se o arquivo está em estado adiado?

Como você detecta se o arquivo está em estado adiado?

Como posso saber se um arquivo ou arquivos estão em estado adiado usando o bash? Existe uma maneira de detectar isso?

amostra:

ao salvar um arquivo, o kernel armazena em cache o arquivo e ainda não foi gravado no disco. este é o estado D ou estado diferido. quando estiver em estado adiado, quando você verificar o arquivo como php -r "var_dump(file_exists($filename));", o kernel responderá, sim, o arquivo está lá. mas, na realidade, o arquivo ainda não foi gravado no disco. e quando o servidor foi reiniciado, o arquivo desapareceu.

o evento aconteceu conosco e quero evitá-lo ou criar uma ferramenta de monitoramento que o detecte e nos avise para que possamos copiar os arquivos em outro servidor antes de reiniciá-lo.

Responder1

Acho que você está diante de um "problema" errado. Quando o sistema for reiniciado corretamente, o processo de desligamento garantirá que todos os dados sejam gravados no armazenamento permanente.

Então, o problema aqui é que a reinicialização é feita de forma errada, o que causa perda de dados. Você precisa alterar sua reinicialização para usar shutdown -r nowum comando semelhante.

Responder2

acho que encontrei a ferramenta. não é perfeito para o que procuro, mas farei funcionar.

é um vmtouchcomando, pode ser encontrado emhttps://github.com/hoytech/vmtouch

obrigado.

informação relacionada