inotify - figyeljük a könyvtár tartalmának változását

Az inotify akkor segíthet, ha egy könyvtárban történt bármilyen változásra azonnal reagálni kell.

Az inotify-tools csomagra lesz szükségünk.

Az alábbi módon tudjuk kipróbálni a működését_

Készítünk egy fifo-t, amibe a parancs kimenetét belepakoljuk:

mkfifo /tmp/fifo
echo > /tmp/fifo

Létrehozunk egy könyvtárat, aminek a tartalámt figyelni akarjuk:
mkdir -p /tmp/pro
Elindítjuk az inotifywait-et:

inotifywait -r -c -m -e  create,close_write,delete,move /tmp/pro/ >> /tmp/fifo

Kapcsolók:
-r - a könyvárat rekirzívan vizsgálja
-c - a kimenetet CSV formátumúra konvertálja, hogy könnyű legyen feldolgozni
-m - Folyamatosan fusson, különben egy esemény után kilépne
-e - Az események felsorolása, amire figyeljen. Ezek lehetnek:

    access        file or directory contents were read
    modify        file or directory contents were written
    attrib        file or directory attributes changed
    close_write    file or directory closed, after being opened in
                   writeable mode
    close_nowrite    file or directory closed, after being opened in
                   read-only mode
    close        file or directory closed, regardless of read/write mode
    open        file or directory opened
    moved_to    file or directory moved to watched directory
    moved_from    file or directory moved from watched directory
    move        file or directory moved to or from watched directory
    create        file or directory created within watched directory
    delete        file or directory deleted within watched directory
    delete_self    file or directory was deleted
    unmount        file system containing file or directory unmounted

A kimenetét a fifo-ból így tudjuk kinyerni:

while read line < /tmp/fifo; do echo  $line; done

Ezt feldolgozva tudunk a különböző eseményekhez különböző szkriptet, parancsot futtatni.


Kulcsszavak: inotify, mkfifo, Linux kernel fifo

Új hozzászólás: