GNU/Linux >> Znalost Linux >  >> Linux

Jak sledovat změny souborů pomocí fswatch v Linuxu

Fswatch je bezplatný nástroj pro sledování změn souborů s otevřeným zdrojovým kódem pro více platforem, který nás upozorní, když se obsah zadaných souborů nebo adresářů změní nebo změní. Pomocí fswatch můžeme snadno sledovat změny prováděné v souborech a/nebo adresářích. Podporuje všechny operační systémy, včetně GNU/Linux, *BSD, Mac OS X, Solaris a Microsoft Windows atd. V tomto stručném průvodci vám ukážu, jak monitorovat změny souborů pomocí fswatch v operačních systémech podobných Unixu.

Typy monitorování

fswatch implementuje následující typy monitorů.

  • Monitor založený na rozhraní File System Events API systému Apple OS X.
  • Monitor založený na kqueue, oznamovacím rozhraní představeném ve FreeBSD 4.1.
  • Monitor založený na rozhraní File Events Notification API jádra Solaris a jeho derivátů.
  • Monitor založený na inotify, subsystému jádra Linuxu, který aplikacím hlásí změny systému souborů.
  • Monitor založený na ReadDirectoryChangesW, rozhraní Microsoft Windows API, které hlásí změny do adresáře.
  • Monitor, který pravidelně shromažďuje údaje o systému souborů, ukládá časy úprav souborů do paměti a ručně vypočítává změny systému souborů.

Funkce

Pokud jde o funkce, můžeme uvést následující:

  • Nástroj pro více platforem a open source.
  • Podpora mnoha rozhraní API specifických pro operační systém.
  • Rekurzivní monitorování adresářů.
  • Filtrování cest pomocí zahrnutí a vyloučení regulárních výrazů.
  • Přizpůsobitelný formát záznamu.
  • Podpora pro pravidelné nečinné události.
  • A mnoho.

Monitorování změn souborů pomocí fswatch v Linuxu

Protože nástroj fswatch není k dispozici ve výchozích repozitářích většiny distribucí Linuxu, musíte ručně zkompilovat a nainstalovat nejnovější verzi ze zdroje, jak je popsáno níže.

Před kompilací je třeba nainstalovat vývojové nástroje do vaší distribuce Linuxu. Chcete-li nainstalovat vývojové nástroje na různé distribuce Linuxu, postupujte podle následujícího průvodce.

  • Jak nainstalovat vývojové nástroje v systému Linux

Poté si stáhněte zdrojový soubor fswatch zde .

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz

Extrahujte stažený tarball:

$ tar -zxvf fswatch-1.9.3.tar.gz

Přejděte do složky projektu:

$ cd fswatch-1.9.3/

Nakonec zkompilujte a nainstalujte fswatch spuštěním následujících příkazů jeden po druhém.

$ ./configure
$ make
$ sudo make install

Nakonec spusťte následující příkaz k obnovení odkazů a mezipaměti dynamických knihoven:

$ sudo ldconfig

Pokud výše uvedený příkaz nespustíte, může se v systémech GNU/Linux zobrazit následující chyba.

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

Použití fswatch

Použití fswatch není žádný velký problém. Typická syntaxe fswatch je:

$ fswatch [options] ... path-0 ... path-n

Chcete-li vyzkoušet, jak fswatch funguje, otevřete dvě okna Terminálu (říkejme jim Terminál 1 a Terminál 2 ).

V Terminálu 1 spusťte příkaz fswatch pro sledování adresáře $HOME.

$ fswatch /home/sk/

A v Terminálu 2 provádějte některé operace, jako je vytváření souborů/složek, mazání souborů, úprava souborů atd.

Cokoli uděláte v terminálu 2, bude upozorněno na terminálu 1. Podívejte se na následující snímky obrazovky.

Terminál 1 - Příkaz fswatch je spuštěn a změny souboru jsou sledovány:

Sledování změn souborů pomocí fswatch

Terminál 2 - Proveďte nějaké náhodné změny v souborech/složkách:

Ve výchozím nastavení fswatch vybere nejlepší dostupný monitor na aktuální platformě, pokud jde o výkon a spotřebu zdrojů. V systému Linux je výchozím monitorem inotify .

Chcete-li zobrazit seznam dostupných monitorů na aktuální platformě (v našem případě Linux), spusťte:

$ fswatch -M

Nebo,

$ fswatch --list-monitors

Ukázkový výstup:

inotify_monitor
poll_monitor

Chcete-li monitorovat konkrétní soubor nebo adresář pomocí konkrétní volby monitoru, spusťte:

$ swatch -m kqueue_monitor /home/sk/

Ve výchozím nastavení bude fswatch sledovat změny souboru, dokud je ručně nezastavíte vyvoláním CTRL+C klíče.

Fswatch můžete také ukončit po přijetí první sady událostí zadáním volby -1 jak je znázorněno v následujícím příkazu:

$ fswatch -1 /home/sk/

Tento příkaz se ukončí ihned po přijetí první sady událostí.

fswatch bude sledovat změny ve všech souborech/složkách v zadané cestě. Pokud chcete sledovat změny provedené pouze v adresářích, použijte -d možnost.

$ fswatch -d /home/sk/

Možností je samozřejmě více. Podívejte se na manuálové stránky nebo stránku dokumentace projektu pro podrobné pokyny.

$ man fswatch

Linux
  1. Jak přejmenovat soubor v Linuxu?

  2. Jak rozdělit iso nebo soubor pomocí příkazu „split“ v Linuxu

  3. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.

  1. Jak monitorovat ethernetovou aktivitu v Linuxu pomocí Arpwatch

  2. Jak připojit soubor pomocí příkazu mail v systému Linux?

  3. Jak zkopíruji soubor přes FTP pomocí Ubuntu Linux?

  1. Jak přesunout soubor v Linuxu

  2. Jak vytvořit soubor v Linuxu pomocí terminálu/příkazového řádku

  3. Jak mohu sledovat data na sériovém portu v Linuxu?