jak umieścić wyzwalacz w katalogu


25

Mam skrypt, który skanuje katalog i zajmuje się konserwacją plików w nim zawartych. Kolejny proces tworzy pliki w katalogu (10–30 plików dziennie).

Skrypt jest wywoływany przez codzienną pracę crona. Potrzebuję uruchomić skrypt na zdarzeniu (za każdym razem, gdy w katalogu tworzony jest nowy plik). Wolę to niż zwiększanie częstotliwości pracy crona.

Jak mogę to zrobić? czy istnieje polecenie lub program do zainstalowania?

Z góry dziękuję za wszelką pomoc.

Odpowiedzi:


23

inoticoming

inoticoming to demon do oglądania katalogu z systemem inotify systemu Linux i wyzwalania akcji po umieszczeniu w nim plików o określonych nazwach.

Na przykład można go użyć do oczekiwania na przesłanie plików .changes do katalogu i wywołania reprezentpro w celu umieszczenia ich w repozytorium.

incron

incron to system „inotify cron”. Działa jak zwykły cron, ale jest sterowany przez zdarzenia systemu plików zamiast zdarzeń czasowych. Ten pakiet zawiera dwa programy, demona o nazwie „incrond” (analogicznie do crond) oraz manipulator tabeli „incrontab” (jak „crontab”).

incron używa wywołań systemowych inotify jądra Linux.

podobnie jak cron, każdy użytkownik może edytować własne tabele incron.


2
Czy możesz podać przykład? Linki do stron podręcznika są również mile widziane, nie mogłem znaleźć tego incron, inoticomingktóry jest tutaj .
Lekensteyn,

Informacje na temat incron można znaleźć na stronach incrond, incrontab i incron.conf
Florian Diesch

2
Zredagowałem twoją odpowiedź w taki sposób, w jaki chciałem ją zobaczyć. Skopiowałem go z opisów pakietów, w przyszłości
nazwijmy

4

Istnieje również mały program o nazwie iwatch- patrz strona man (ta strona dotyczy Ubuntu precyzyjnie (12.04), zawiera linki do innych wersji ubuntu).

iwatch ma możliwość oglądania folderów rekurencyjnie (tj. także podfolderów) i wysyłania wiadomości e-mail w odpowiedzi na zdarzenia związane z plikiem / katalogiem.


3

Innym narzędziem, o którym warto wiedzieć, jest fileschanged( strona man tutaj ), które może monitorować zdarzenie systemu plików w wybranych plikach lub katalogach, na przykład następujące polecenie

fileschanged -s created -t1 $PWD

powinien monitorować bieżący katalog w poszukiwaniu zdarzeń związanych z tworzeniem plików, zapisując nazwę utworzonego pliku stdoutz 1-sekundowym limitem czasu.

fileschangedmoże oglądać foldery rekurencyjnie (jak można iwatchzauważyć w innej odpowiedzi), w przeciwieństwie do incroni inoticoming.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.