Редактирование вывода inotifywait в режиме демона

  1. Вы можете вызвать python 3, используя /data/tools/python3 вместо python.

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

2
19.04.2017, 19:13
2 ответа

Вы можете использовать параметр - format для inotifywait , чтобы изменить выходной формат. Это просто напечатает имена файлов, когда файлы закрываются, а не тип события:

inotifywait -eclose_write -m --format "%w%f" -q /path/to/target/dir

Кажется, он не поддерживает escape-символы в стиле C ( \ 0 ) и настаивает на печати новой строки в конце каждого события, поэтому я надеюсь, что у вас нет имен файлов с символами новой строки.

1
27.01.2020, 22:18

Из man parallel:

ПРИМЕР: GNU Parallel как процессор каталога

Если у вас есть каталог, в который пользователи помещают файлы, которые необходимо обработать, вы можете сделать это в GNU/Linux ( Если вы знаете, как inotifywait вызывается на других платформах, отправьте отчет об ошибке):

 inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f my_dir |\
параллельно -у эхо
 

Это запустит команду echo для каждого файла, помещенного в my_dir или подкаталоги my_dir.

Конечно, вы можете использовать -S для распределения заданий на удаленные компьютеры:

 inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f my_dir |\
параллельный -S.. -u эхо
 

Звучит довольно близко к тому, что вы надеетесь сделать.

Чтобы изучить GNU Parallel, следуйте "Руководству для читателей" в начале "man parallel".

0
27.01.2020, 22:18

Теги

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