Como observar a chegada de arquivos se o inotifywait não estiver disponível?

Como observar a chegada de arquivos se o inotifywait não estiver disponível?

Eu tenho um diretório que é gravado quando outras máquinas enviam arquivos via FTP. Quero implementar algo que perceba quando os arquivos chegam e se o nome do arquivo contém uma substring específica (como "jpg"), mova o arquivo para algum outro diretório (somente depois que o arquivo terminar de chegar, não antes)

Quero implementar isso em muitos tipos diferentes de caixas Linux. Uma dessas caixas possui o kernel Linux 2.4.22. É possível que existam mais antigos. Ainda estou verificando.

Nas máquinas mais antigas, vejo isto: inotifywait: command not found.

Eu também vi isso:The inotify API is available in Linux 2.6.13 and later

E isto:bash: watch: command not found

Ideias em POSIX sh ou bash ou C podem funcionar. Perl e Python provavelmente não estão disponíveis em todos os lugares onde desejo executar isso. Não tenho permissão para instalar pacotes.

Responder1

Eu escrevi este programa Perl há muito tempo que pode ajudar você a começar, se você entendê-lo. Ele usa o recurso inotify no kernel.

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

Você terá que alterar o código da sincronização para fazer o que for necessário, mas está quase tudo lá.

Eu sei que você tem um problema com Perl, mas eu queria dar isso a você, só para garantir.

Se ajudar, aqui está uma demonstração de como fazer isso com C

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

informação relacionada