GNU/Linux >> Linux Esercitazione >  >> Linux

Usare Innotify per monitorare l'accesso a un file?

Vorrei avere un trigger e quando si accede a un determinato file da parte di un processo, vorrei essere avvisato (ovvero, dovrebbe essere eseguito uno script). Se ho capito bene, questo potrebbe essere ottenuto con inotify .

Se ho un file /foo/bar.txt come posso impostare inotify monitorare quel file?

Sto usando Debian Wheezy con kernel 3.12 (il mio kernel ha il supporto per inotify)

Risposta accettata:

Secondo Gilles su Super User:

Semplice, usando inotifywait (installa gli inotify-tools della tua distribuzione pacchetto):

while inotifywait -e close_write myfile.py; do ./myfile.py; done

Questo ha una grossa limitazione:se qualche programma sostituisce myfile.py con un file diverso, invece di scrivere nel myfile esistente , inotifywait morirà. La maggior parte degli editor funziona in questo modo.

Per superare questa limitazione, usa inotifywait nella directory:

while true; do
  change=$(inotifywait -e close_write,moved_to,create .)
  change=${change#./ * }
  if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done

Linux
  1. posizione del file temporaneo quando si utilizza tmpfile() in C

  2. Eventi inotify mancanti (nella directory .git)

  3. Usando il carattere di sottolineatura nei nomi dei file?

  4. Come riempire un file con FF usando dd?

  5. Converti file in PDF utilizzando LibreOffice sotto l'utente apache (ovvero quando si utilizza PHP)

Utilizzo del file di configurazione SSH

Come monitorare le modifiche ai file utilizzando fswatch in Linux

Monitoraggio dell'accesso ai file Linux?

Procedura:un'introduzione all'uso di Git

Trasferisci file usando WinSCP

Come rimuovere un file senza usare rm?