특정 디렉터리에 파일이 생성되면 어떻게 스크립트를 실행할 수 있나요?
답변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
.