대용량 파일에 대한 inotifywait 디바운스

대용량 파일에 대한 inotifywait 디바운스

원격 디렉터리에 배포할 파일을 업로드합니다. 원격 서버에는 디렉터리에서 새 파일을 모니터링하는 스크립트가 있습니다.

inotifywait --monitor --event create --format '%f' --quiet /foo

새 파일이 감지되면 배포 프로세스가 시작됩니다.

문제는 업로드에 시간이 걸리고 파일이 쓰기 시작하자마자 감지된다는 것입니다. 따라서 부분 파일을 사용하려고 하기 때문에 배포가 실패합니다.

inotifywait새 파일이 완전히 생성된 후에만 보고되도록 지터를 제거하는 방법이 있습니까 ?

답변1

경험한 것처럼 create이벤트에 초점을 맞추는 것은 그다지 유용하지 않습니다. 이러한 이벤트는 파일이 생성될 때 발생하지만 데이터가 기록되었는지, 언제 기록되었는지는 알려주지 않습니다.완전한그것에 데이터를 쓰십시오.

일반적으로 모니터링 close이나 close_write이벤트가 필요합니다. 매뉴얼 페이지에서:

활동

  • close_write

    감시된 파일 또는 감시된 디렉터리의 파일이 쓰기 가능 모드로 열린 후 닫혔습니다. 이는 반드시 파일이 작성되었음을 의미하지는 않습니다.

  • close_nowrite

    감시된 파일 또는 감시된 디렉터리의 파일이 읽기 전용 모드로 열린 후 닫혔습니다.

  • close

    감시된 파일 또는 감시된 디렉터리의 파일은 열린 방법에 관계없이 닫힙니다. 이는 실제로 close_write 및 를 수신하여 수행되므로 close_nowrite수신된 닫기 이벤트는 CLOSE가 아닌 이들 중 하나로 출력됩니다.

관련 정보