Denne opplæringen vil gå over hvordan du implementerer et enkelt skript som bruker Python og Linux Inotify API for å overvåke endringer i en spesifikk katalog og logge konsollendringene.
Før vi kommer til manuset, la oss kort diskutere hvordan Inotify fungerer.
Hva er inotify? Hvordan virker det?
Inotify er et kjerneundersystem som gir mekanismen for å overvåke hendelser i filsystemet og rapportere dem til forskjellige applikasjoner som krever dem. Inotify er utrolig kraftig fordi det fungerer i de lavere nivåene av kjernen og kan tilpasses for å utvide funksjonaliteten. Inotify kan overvåke endringer i kataloger og individuelle filer.
Selv om Inotify er kraftig, har den noen begrensninger. Disse begrensningene inkluderer:
Imidlertid er Inotify fortsatt et mye bedre valg enn Dnotify, forgjengeren. Inotify er svært anvendelig i sikkerhetsapplikasjoner som antivirus.
Nå som vi har inotify grunnleggende teori ut av veien, la oss dykke til å bygge skriptet som vil hjelpe oss å overvåke for katalogendringer.
Installere Python og vakthund
Før du dykker ned i koden, la oss sette opp noen få krav, for eksempel å installere Python og Watchdog -pakken.
For å installere Python3 på Debian, bruk APT -kommandoen som:
sudo apt-get oppdatering
sudo apt-get install python3.7 python3 -pip -y
For å installere Watchdog -pakken, bruk PIP3 -kommandoen som vist nedenfor:
https: // pypi.org/prosjekt/vakthund/
sudo pip3 installer vakthund
Skrive manuset
Manuset vi skal lage i denne opplæringen er veldig enkelt. Vurder kildekoden vist nedenfor:
Importer SysVi starter med å importere de nødvendige modulene, inkludert vakthund. Deretter oppretter vi en enkel skjermfunksjon og angir konfigurasjonen, for eksempel outputformat og dato. Deretter setter vi argumenter for katalogsti.
Vi beveger oss deretter for å opprette et observatørobjekt og angi det for rekursivt å overvåke endringene i katalogen som er spesifisert med mindre et tastaturavbrudd oppstår (CTRL + C)
Til slutt kaller vi funksjonen og kjører skriptet. Du får en utgang som vist nedenfor:
Konklusjon
Ved hjelp av denne opplæringen har vi laget et enkelt manus som overvåker endringene i en katalog og logger dem stadig til konsollen.