Hvordan overvåke filsystem Hendelser med incron

Noen ganger er det bare et behov for å overvåke bestemte filer eller filsystemer og utføre handlinger eller motta meldinger, dette er hvor incron kan hjelpe.

incron er for overvåking filsystem aktivitet. Den består av en daemon og et bord manipulator. Du kan bruke den på samme måte som den vanlige cron. Forskjellen er at inotify cron håndterer filsystem hendelser i stedet for tidsperioder

incron gir en enkel måte hvordan du kan løse mange og mange ulike situasjoner. Hver gang når noe er avhengig av filsystemet hendelser, er det en jobb for incron

Her kan du se noen eksempler hvor incron er en god løsning:.

  • Varsling programmer (f.eks server daemons) om endringer i konfigurasjonen

    Vokter endringer i kritiske filer (med deres eventuelle recovery)

    Billed overvåking, statistikk

    Først må installere incron :

     $ sudo yum install incron 

    Pass på at vi setter den til å starte på nytt:

     $ sudo chkconfig incrond på 

    Og nå skal begynne incron:

     $ sudo tjenesten incrond starte 

    incrond bruker inotify. Så for å bruke den effektivt må vi ha det handle på inotify hendelser som er:.

     IN_ACCESS File ble åpnet (lese) (*) IN_ATTRIB Metadata endret, for eksempel, tillatelser, tidsstempler, utvidede attributter, link count ( siden Linux 2.6.25), UID, GID, etc. (*). IN_CLOSE_WRITE File åpnet for skriving ble lukket (*). IN_CLOSE_NOWRITE Fil ikke åpnes for skriving ble lukket (*). IN_CREATE Fil /katalog opprettet i så katalogen (* ) .IN_DELETE File /katalog slettet fra så katalogen (*). IN_DELETE_SELF Overvåket fil /katalog var selv deleted.IN_MODIFY Filen ble endret (*). IN_MOVE_SELF Overvåket fil /katalog var selv moved.IN_MOVED_FROM File flyttet ut av så katalog (*) .IN_MOVED_TO File flyttet inn så katalogen (*). IN_OPEN Filen ble åpnet (*). 

    incron tabellen manipulator kan kjøres under noen vanlig bruker siden det SUIDs. For manipulering med tabellene bruker i utgangspunktet samme syntaks som for crontab program. Du kan importere en tabell, fjerne og redigere den gjeldende tabellen

    De brukertabellrader har følgende syntaks (bruk ett eller flere mellomrom mellom elementer).

     < banen > < maske > < kommandoen > 

    Hvor

    <? banen > er et filsystem bane (hver mellomrom må prepended av en backslash) < maske > er en symbolsk eller numerisk maske for hendelser (se mannen inotify for mer informasjon) < kommandoen > er et program eller skript for å kjøre på hendelsene

    Kommandoen kan inneholde følgende jokertegn:

     $$ - et dollartegn $ @ - overvåket filsystemet banen (se ovenfor) $ # - den event-relatert filnavnet $% - hendelses flagg (ordrett) $ & - Hendelses flagg (numerisk) 

    Nå med all denne informasjonen, hva kan jeg gjøre? Si at du ønsker å bli varslet hver gang /etc /hosts er modifisert og send oss. Åpne incrontab sørg for at du er root for dette eksempelet:

     # incrontab -e /etc /hosts IN_MODIFY mailx -s "Hosts filen har blitt forandret" [email protected] 

    Lagre endringene og åpne /etc /hosts og gjøre en endring, og du bør få en e-post i innboksen din.

    På dette punktet har vi dekket bare grunnleggende for hva som er mulig med incron. Eksperimenter med incron og se hva andre elementer du kan overvåke og hvilke andre kommandoer du kan kjøre på filsystem handlinger. Anmeldelser