Как отслеживать поступающие файлы, если inotifywait недоступен? [закрыто]

У меня есть каталог, в который записывается, когда другие машины отправляют файлы через FTP. Я хочу что-то поместить в поместите это уведомление о прибытии файлов, и если их имя файла содержит определенную подстроку (например, "jpg"), переместите файл в какой-либо другой каталог (только после того, как файл будет доставлен, а не раньше)

Я хочу поместить это в размещать на разных типах Linux-компьютеров. В одном из таких ящиков установлено ядро ​​Linux 2.4.22. Возможно, есть более старые. Я все еще проверяю.

На старых машинах я вижу следующее: inotifywait: команда не найдена .

Я также видел это: API inotify доступен в Linux 2.6.13 и более поздних версиях

И это: bash: watch: команда не найдена

Идеи в POSIX sh, bash или C. могут работать. Perl и Python, вероятно, доступны не везде, где я хочу это запустить. У меня нет разрешения на установку p ackages.

2
задан 9 October 2015 в 23:11
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

3
ответ дан 3 December 2019 в 10:41

Теги

Похожие вопросы