디렉터리가 업데이트될 때 자동으로 명령을 실행하려면 어떻게 해야 합니까?

디렉터리가 업데이트될 때 자동으로 명령을 실행하려면 어떻게 해야 합니까?

CentOS에서 /opt/data와 같은 디렉토리를 모니터링하는 방법입니까? 해당 디렉토리에 파일이 추가될 때마다 자동으로 명령이 실행됩니까? inotify를 설치했지만 이것이 최고의 도구인지 확실하지 않습니다.

도울 수 있니? 미리 감사드립니다

답변1

inotifywait다음을 사용하여 파일이 추가되면 디렉터리를 모니터링하고 명령을 실행할 수 있습니다 .

inotifywait -m -e create -e moved_to --no-newline --format "%f%0" /opt/data | \
   while IFS= read -r -d '' NAME; do
       echo "Added file: '${NAME}'"
   done

귀하의 명령으로 바꾸십시오 echo "Added file: '${NAME}'".

옵션 inotifywait:

  • -m— 첫 번째 이벤트 이후 종료하지 마십시오.
  • -e create -e moved_to- 보고할 이벤트입니다. inotify는 파일 생성 이벤트와 이동 이벤트를 구별하므로 둘 다 지정됩니다.
  • --no-newline— 파일 이름 뒤에 개행 문자를 인쇄하지 마십시오.
  • --format "%f%0"— 0으로 끝나는 파일 이름만 인쇄합니다.

관련 정보