як поставити тригер на каталог


25

У мене є сценарій, який сканує каталог і виконує деяке обслуговування файлів у ньому. Інший процес створює файли в каталозі (10 - 30 файлів на день).

Сценарій викликається за допомогою щоденного завдання cron. Що мені потрібно - це запустити сценарій події (кожен раз, коли новий каталог створюється в каталозі). Я віддаю перевагу цьому, а не збільшенню частоти роботи з кроном.

Як я можу це зробити? чи є команда чи програма для встановлення?

Заздалегідь дякую за будь-яку допомогу.

Відповіді:


23

інікомік

inoticoming - це демон, який слід дивитись у каталозі з інотифікаційною рамкою Linux та запускати дії, коли файли із конкретними іменами розміщуються там.

Наприклад, з його допомогою можна чекати файлів .changes, завантажених у каталог, та викликати reprepro, щоб розмістити їх у вашому сховищі.

інкрон

incron - це система "прищеплення крону". Він працює як звичайний cron, але керується подіями файлової системи замість подій часу. Цей пакет пропонує дві програми, демон під назвою "incrond" (аналог crond) та табличний маніпулятор "incrontab" (наприклад, "crontab").

incron використовує ядро ​​Linux, ініціює системні дзвінки.

як і cron, кожен користувач може редагувати власні таблиці інкронів.


2
Чи можете ви навести приклад? Посилання на сторінки з інструкціями теж вітаються, я не зміг знайти його для того incron, inoticomingхто тут .
Лекенштейн

Для інкрону дивіться рукописи інкорду, інкронтабу та incron.conf
Флоріан Дієш

2
Я відредагував вашу відповідь таким чином, що хотів її побачити. Я скопіював це з описів пакетів, будь ласка, будьте такі масштабні в майбутньому, коли називати програми :)
Lekensteyn

4

Існує також невелика програма під назвою iwatch- дивіться man сторінку (ця сторінка є точною для Ubuntu (12.04), на ній є посилання на інші версії ubuntu).

iwatch має можливість переглядати папки рекурсивно (тобто також підпапки) та надсилати електронні листи у відповідь на події файлів / каталогів.


3

Ще одна утиліта, про яку варто знати, це fileschanged( man page тут ), яка може контролювати події файлової системи у вибраних файлах чи каталогах, наприклад наступна команда

fileschanged -s created -t1 $PWD

повинен контролювати поточний каталог подій створення файлів, записуючи ім'я створеного файлу на stdout1 сек.

fileschangedможе дивитися папки рекурсивно (як це можна iwatchзазначити в іншій відповіді), на відміну від incronі inoticoming.


2

Сторінка прищепного чоловіка знаходиться там

якщо ви віддаєте перевагу сценарії python, ви можете використовувати pyinotify

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.