
bash를 사용하여 파일이 지연된 상태인지 어떻게 알 수 있나요? 이것을 감지할 수 있는 방법이 있나요?
견본:
파일을 저장할 때 커널은 파일을 캐시하지만 아직 디스크에 기록되지 않습니다. 이것이 D 상태 또는 지연된 상태입니다. 지연된 상태에서 와 같은 파일을 확인하면 php -r "var_dump(file_exists($filename));"
커널이 응답하고 파일이 거기에 있습니다. 하지만 실제로는 파일이 아직 디스크에 기록되지 않았습니다. 서버가 다시 시작되면 파일이 사라졌습니다.
해당 이벤트가 우리에게 발생했는데 이를 방지하거나 이를 감지하여 알려주는 모니터링 도구를 만들어 다시 시작하기 전에 다른 서버에 파일을 복사할 수 있도록 하고 싶습니다.
답변1
나는 당신이 잘못된 "문제"를보고 있다고 생각합니다. 시스템이 제대로 다시 시작되면 종료 프로세스를 통해 모든 데이터가 영구 저장소에 기록됩니다.
따라서 여기서 문제는 재시작이 잘못된 방식으로 수행되어 데이터 손실이 발생한다는 것입니다. shutdown -r now
또는 유사한 명령을 사용하도록 다시 시작을 변경해야 합니다 .
답변2
도구를 찾은 것 같아요. 내가 찾고 있는 것이 완벽하지는 않지만 작동하도록 할게요.
해당 vmtouch
명령은 다음에서 찾을 수 있습니다.https://github.com/hoytech/vmtouch
감사해요.