GNU/Linux >> Znalost Linux >  >> Linux

Používáte Inotify ke sledování přístupu k souboru?

Chtěl bych mít trigger a když je určitý soubor zpřístupněn nějakým procesem, chtěl bych být upozorněn (tj. měl by být spuštěn skript). Pokud tomu dobře rozumím, lze toho dosáhnout pomocí inotify .

Pokud mám soubor /foo/bar.txt jak bych nastavil inotify sledovat tento soubor?

Používám Debian Wheezy s jádrem 3.12 (moje jádro má podporu inotify)

Přijatá odpověď:

Podle Gillese na Super User:

Jednoduché, pomocí inotifywait (nainstalujte si inotify-tools vaší distribuce balíček):

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

To má velké omezení:pokud nějaký program nahradí myfile.py s jiným souborem místo zápisu do existujícího myfile , inotifywait zemře. Většina editorů tak funguje.

K překonání tohoto omezení použijte inotifywait v adresáři:

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

Linux
  1. Jak auditovat přístup k souborům v systému Linux

  2. Restartujte proces při změně souboru v Linuxu

  3. souběžný přístup k souboru linux

  1. Použití nc pro přenos velkých souborů

  2. dočasné umístění souboru při použití tmpfile() v C

  3. Používáte podtržítko v názvech souborů?

  1. Jak podložit soubor pomocí FF pomocí dd?

  2. Převeďte soubor do PDF pomocí LibreOffice pod uživatelským apache (tj. při použití PHP)

  3. Průběžně rekurzivně detekujte nové soubory pomocí nástrojů inotify ve více adresářích