Inotify în modificările sistemului bash de file de captură

Inotify în modificările sistemului bash de file de captură
Inotify este un subsistem al kernel-ului Linux, care vă permite să monitorizați modificările sistemului de fișiere. Utilizarea acestui subsistem vă permite să efectuați anumite acțiuni în cazul în care creați un fișier, scrieți ceva, deschideți-l, închideți-l, ștergeți-l și așa mai departe. Folosirea acestui mecanism vă permite să scăpați de necesitatea de a introduce scripturi cu expirări folosind comanda de somn. Acest lucru simplifică logica scriptului, pentru că trebuie să așteptăm informații despre schimbările din sistemul de fișiere și când vom obține informații că ceva sa schimbat, luați măsurile necesare. Să examinăm un exemplu de script care folosește inotify.







Inotifywait și inotifywatch

Aceste programe ne vor ajuta să furnizăm funcționalitatea necesară pentru urmărirea modificărilor în sistemul de fișiere. În Debian și Ubuntu, acestea sunt incluse în pachetul inotify-tools. Instalarea pachetului:

Cum funcționează inotifywatch-ul

Programul inotifywatch colectează statistici de acces pentru sistemul de fișiere utilizând inotify. La sfârșitul programului, programul afișează informații statistice sub forma unui tabel, inclusiv informații despre numărul total de evenimente, numărul de evenimente de fiecare tip și fișierul pentru care a avut loc evenimentul. Are un număr de parametri pe care îl puteți utiliza pentru a modifica parametrii programului.

Afișați informațiile de utilizare

Obțineți informații suplimentare la fluxul de eroare standard în timpul funcționării

Urmăriază modificările recursiv pentru directorul trecut ca argument al liniei de comandă. Dacă subdirectoarele sunt create în directorul monitorizat în timpul funcționării programului, acestea vor fi urmărite automat. În cazul în care piesa este selectat directorul rădăcină sau un director cu multe subdirectoare și fișiere, instalarea urmărirea tuturor elementelor sistemului de fișiere poate dura ceva timp, timp în care nu vor fi primite evenimentele. În plus, este posibil să se atingă numărul maxim de obiecte ale sistemului de fișiere permise să fie urmărite de fiecare utilizator. Valoarea implicită este 8192 și poate fi mărită scriind o nouă valoare în / proc / sys / fs / inotify / max_user_watches:







echo "51200"> / proc / sys / fs / inotify / max_user_watches

Excludeți din fișierele de urmărire cu nume care se potrivesc cu șablonul. Pentru șablon, se utilizează expresii regulate POSIX extinsă. Registrul este luat în considerare la utilizarea acestui parametru.

Excludeți din fișierele de urmărire cu nume care se potrivesc cu șablonul. Pentru șablon, se utilizează expresii regulate POSIX extinsă. Registrul este ignorat atunci când acest parametru este utilizat.

În timpul urmăririi recursive a directorului, excludeți fișierul specificat din urmărire. Dacă fișierul este specificat pentru a include atât lista de urmărire, cât și excluderea din urmărire în același timp, aceasta va fi urmărită. Pentru un fișier, puteți utiliza fie o cale relativă, fie o cale absolută. Dacă numele fișierului include caracterul "@", utilizați calea absolută.

Pentru a citi lista fișierelor care vor fi monitorizate și ignorate din fișier, fiecare nume de fișier trebuie să înceapă cu o nouă linie. Dacă numele fișierului începe cu simbolul "@", urmărirea pentru acesta va fi dezactivată. Dacă specificați simbolul "-" (minus) ca nume de fișier, lista fișierelor va fi citită din fluxul standard de intrare. Acest parametru are sens să se utilizeze când trebuie să urmăriți un număr mare de fișiere, iar lista lor este incomodă să treacă ca argumente de linie de comandă.

Afișați coloanele și rândurile din tabel, chiar dacă acestea sunt goale. În mod prestabilit, liniile și coloanele goale nu sunt afișate.

-T <секунды>,
-timeout <секунды>

Lucrați numai pentru numărul de secunde specificat. Dacă acest parametru nu este specificat, programul va funcționa până când acesta primește un semnal pentru a întrerupe lucrarea, de exemplu apăsând tastele Ctrl + C

-e <событие>,
-event <событие>

Urmăriți numai evenimentele din tipurile specificate. Acest parametru poate fi specificat de mai multe ori. Dacă nu este specificat, vor fi urmărite evenimente de toate tipurile

-o <событие>,
-ascending <событие>

Sortați rezultatul prin creșterea numărului de evenimente pentru tipul de eveniment specificat. Tipuri de evenimente, pe care le puteți efectua sortarea, include «totală» și evenimentele care sunt enumerate mai jos, cu excepția «mișcare» și (în locul acestora trebuie să fie specificate «moved_to», «moved_from», «close_write» și «close_nowrite») «închidere» . În mod prestabilit, sortarea se face în ordine descrescătoare după câmpul "total".

-d <событие>,
-descending <событие>

Sortați ieșirea prin scăderea numărului de evenimente pentru tipul de eveniment specificat. Tipuri de evenimente, pe care le puteți efectua sortarea, include «totală» și evenimentele care sunt enumerate mai jos, cu excepția «mișcare» și (în locul acestora trebuie să fie specificate «moved_to», «moved_from», «close_write» și «close_nowrite») «închidere» . În mod prestabilit, sortarea se face în ordine descrescătoare după câmpul "total".

Tipuri de evenimente pentru urmărire:







Articole similare

Trimiteți-le prietenilor: