Ten samouczek przejdzie, jak zaimplementować prosty skrypt, który używa interfejsu API Python i Linux w celu monitorowania zmian w określonym katalogu i rejestrowania zmian konsoli.
Zanim przejdziemy do scenariusza, omówmy krótko, jak działa inotify.
Co jest inotyfikujące? Jak to działa?
Inotify to podsystem jądra, który zapewnia mechanizm monitorowania zdarzeń w systemie plików i zgłaszania ich do różnych aplikacji, które ich wymagają. Inotify jest niezwykle potężny, ponieważ działa na niższych poziomach jądra i można je rozszerzyć funkcjonalność. Inotify może monitorować zmiany w katalogach i poszczególnych plikach.
Chociaż inotyfy jest potężne, ma pewne ograniczenia. Ograniczenia te obejmują:
Jednak inotify jest nadal znacznie lepszym wyborem niż dnotify, jego poprzednik. Inotify ma wysoce obowiązujące w aplikacjach bezpieczeństwa, takich jak antywirusy.
Teraz, gdy mamy na mocy podstawową teorię podstawową, zanurzmy się w zbudowanie skryptu, który pomoże nam monitorować zmiany w katalogu.
Instalowanie Pythona i Watchdoga
Przed zanurzeniem się w kodzie skonfigurujmy kilka wymagań, takich jak instalacja Pythona i pakietu Watchdog.
Aby zainstalować Python3 w Debian, użyj polecenia Apt jako:
Sudo apt-get Aktualizacja
sudo apt-get instal Python3.7 Python3 -Pip -y
Aby zainstalować pakiet Watchdog, użyj polecenia PIP3, jak pokazano poniżej:
https: // pYPI.Org/Project/Watchdog/
Sudo PIP3 instaluj Watchdog
Pisanie skryptu
Skrypt, który stworzymy w tym samouczku, jest bardzo prosty. Rozważ kod źródłowy pokazany poniżej:
Import SysZaczynamy od zaimportowania wymaganych modułów, w tym Watchdog. Następnie tworzymy prostą funkcję monitorowania i ustawiamy konfigurację, taką jak format wyjściowy i data. Następnie ustawiamy argumenty ścieżki katalogu.
Następnie poruszamy się, aby utworzyć obiekt obserwatora i ustawić go do rekurencyjnego monitorowania zmian w określonym katalogu, chyba że napotkano przerwanie klawiatury (CTRL + C)
Na koniec wywołujemy funkcję i uruchamiamy skrypt. Otrzymasz wyjście, jak pokazano poniżej:
Wniosek
Korzystając z tego samouczka, stworzyliśmy prosty skrypt, który monitoruje zmiany w katalogu i stale rejestruje je na konsolę.