파일 생성 시 스크립트 실행 [중복]

파일 생성 시 스크립트 실행 [중복]

특정 디렉터리에 파일이 생성되면 어떻게 스크립트를 실행할 수 있나요?

답변1

당신이 사용할 수있는잉크론(크론에게 알립니다).

동일한 아이디어입니다 cron. 단, 시간을 기반으로 하는 대신 incrontab파일 시스템의 특정 이벤트에 대해 실행할 명령을 지정하는 명령을 정의합니다.

귀하의 경우에는 incrontab다음과 같습니다.

/tmp IN_CLOSE_WRITE /path/to/someCommand $#

someCommand파일 이름을 인수로 사용하여 파일을 쓰고 닫을 때마다 호출됩니다(그리고 someCommand이름이 지정된 파일이 전달되었는지 확인 해야 합니다 myFile).

하지만 주의할 점이 있습니다. /tmp전 세계적으로 쓰기가 가능하므로 누구든지 무엇이든 거기에 파일을 쓰고 기호 링크를 만들 수 있습니다. 따라서 myFile전송 시 쓰기 권한이 있는 모든 파일을 덮어쓰거나(심볼릭 링크 사용) 의도한 것과 다른 명령(예: 트로이 목마)을 실행하게 할 수 있습니다. 자신에게만 쓰기 권한이 있는 디렉터리에 파일을 저장하는 것이 더 합리적입니다.

답변2

다음 위치에 동일한 스크립트를 넣을 수 있습니다 cron.

while true; do
   modification_time=`stat --printf=%y /tmp/mydir`
   if [ "$modification_time" != "`stat --printf=%y /tmp/mydir`" ]; then
      echo YOUR DIR CHANGED
   fi;
done;

작동하는지 테스트해봤습니다. 변경할 수 있습니다 echo line.

관련 정보