Как следить за поступлением файлов, если 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

Связанный контент