inotifywait를 사용할 수 없는 경우 도착하는 파일을 감시하는 방법은 무엇입니까?

inotifywait를 사용할 수 없는 경우 도착하는 파일을 감시하는 방법은 무엇입니까?

다른 컴퓨터가 FTP를 통해 파일을 보낼 때 기록되는 디렉터리가 있습니다. 파일이 도착할 때 이를 알리고 파일 이름에 "jpg"와 같은 특정 하위 문자열이 포함되어 있으면 파일을 다른 디렉터리로 이동합니다(파일 도착이 완료된 후에만 가능).

나는 이것을 다양한 종류의 Linux 상자에 배치하고 싶습니다. 그러한 상자 중 하나에는 Linux 커널 2.4.22가 있습니다. 나이가 많은 경우도 있을 수 있습니다. 아직 확인 중이에요.

이전 컴퓨터에서는 다음이 표시됩니다 inotifywait: command not found.

나는 또한 이것을 보았다:The inotify API is available in Linux 2.6.13 and later

이:bash: watch: command not found

POSIX sh, bash 또는 C의 아이디어가 작동할 수 있습니다. Perl과 Python은 아마도 내가 이것을 실행하고 싶은 곳 어디에서나 사용할 수 없을 것입니다. 패키지를 설치할 권한이 없습니다.

답변1

나는 오래 전에 이 Perl 프로그램을 작성했는데, 이해한다면 시작할 수 있을 것입니다. 커널의 inotify 기능을 사용합니다.

http://www.win2ix.ca/2013/05/31/606/

동기화에서 필요한 작업을 수행하려면 코드를 변경해야 하지만 대부분은 다 있습니다.

나는 당신이 Perl에 문제가 있다는 것을 알고 있지만 만일의 경우에 대비하여 이것을 당신에게 주고 싶었습니다.

도움이 된다면 C로 수행하는 방법에 대한 데모가 있습니다.

http://man7.org/tlpi/code/online/diff/inotify/demo_inotify.c.html

관련 정보