GNU/Linux >> Znalost Linux >  >> Linux

Skript pro sledování nových souborů ve složce?

Jak mohu okamžitě zjistit, kdy byly do složky v bash skriptu přidány nové soubory? Přál bych si, aby skript zpracovával soubory, jakmile jsou ve složce vytvořeny. Existují nějaké metody kromě plánování úlohy cron, která kontroluje nové soubory každou minutu?

Přijatá odpověď:

Měli byste zvážit použití inotifywait , jako příklad:

inotifywait -m /path -e create -e moved_to |
    while read dir action file; do
        echo "The file '$file' appeared in directory '$dir' via '$action'"
        # do something with the file
    done

V Ubuntu inotifywait poskytuje inotify-tools balík. Od verze 3.13 (aktuální v Ubuntu 12.04) inotifywait bude obsahovat název souboru bez volby -f. Starší verze může být nutné vynutit. Důležité je poznamenat, že -e možnost inotifywait je nejlepší způsob, jak provést filtrování událostí. Také vaše read příkaz může přiřadit poziční výstup do více proměnných, které můžete použít nebo ignorovat. K předzpracování výstupu není potřeba používat grep/sed/awk.


Linux
  1. Jak používat Inotifywait ke sledování adresáře pro vytváření souborů s konkrétní příponou?

  2. skript pro sledování nových souborů ve sdílené složce (hostitel systému Windows, host linux)

  3. Jak nastavit oprávnění linux pro složku WWW?

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

  2. Pseudo soubory pro dočasná data?

  3. Vytvořte vyhrazenou složku pro každý soubor zip v adresáři a extrahujte soubory zip

  1. Transliterační skript pro linuxové prostředí

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

  3. Jak vynutím konkrétní oprávnění pro nové soubory/složky na souborovém serveru Linux?