Назад | Перейти на главную страницу

Как следить за прибытием файлов, если 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, вероятно, доступны не везде, где я хочу это запустить. У меня нет разрешения на установку пакетов.

Я написал эту программу на Perl давным-давно, с которой вы могли бы начать, если бы вы ее понимали. Он использует функцию inotify в ядре.

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

Вам придется изменить код с синхронизации на выполнение того, что вам нужно, но в основном это все.

Я знаю, что у вас проблемы с Perl, но я хотел передать его вам на всякий случай.

Если это поможет, вот демонстрация того, как это сделать с C

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