GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, který proces vytváří soubor?

Tato otázka zde již obsahuje odpovědi :Je možné zjistit, jaký program nebo skript vytvořil daný soubor?

(6 odpovědí)
Uzavřeno před 4 lety.

Vzhledem k cestě k souboru, jak mohu určit, který proces jej vytváří (a/nebo do něj čte/zapisuje)?

Přijatá odpověď:

lsof příkaz (již zmíněný v několika odpovědích) vám řekne, jaký proces má soubor otevřený v době, kdy jej spouštíte. lsof je k dispozici téměř pro každou unixovou variantu.

lsof /path/to/file

lsof neřekne vám o souboru, který byl otevřen před dvěma mikrosekundami a uzavřen před jednou mikrosekundou. Pokud potřebujete sledovat konkrétní soubor a reagovat, když k němu přistoupíte, potřebujete jiné nástroje.

Pokud můžete plánovat trochu dopředu, můžete soubor umístit na LoggedFS souborový systém. LoggedFS je skládaný souborový systém FUSE, který protokoluje všechny přístupy k souborům v hierarchii. Parametry protokolování jsou vysoce konfigurovatelné. FUSE je k dispozici na všech hlavních jednotkách. Budete chtít protokolovat přístupy do adresáře, kde je soubor vytvořen. Začněte s poskytnutým vzorovým konfiguračním souborem a upravte jej podle tohoto průvodce.

loggedfs -l /path/to/log_file -c /path/to/config.xml /path/to/directory
tail -f /path/to/log_file

Mnoho unices nabízí další monitorovací zařízení. V Linuxu můžete použít relativně nový auditní subsystém. Není o tom mnoho literatury (ale více než o logfs); můžete začít s tímto tutoriálem nebo několika příklady nebo jen s auditctl manuálová stránka. Zde by mělo stačit ujistit se, že je démon spuštěn, a poté spustit auditctl :

auditctl -w /path/to/file

(Myslím, že starší systémy potřebují auditctl -a exit,always -w /path/to/file ) a sledujte protokoly v /var/log/audit/audit.log .


Linux
  1. Jak zjistit, který proces zapisuje na disk v Linuxu

  2. Jak zjistím, zda souborový systém v .net rozlišuje malá a velká písmena?

  3. Jak přesměrovat výstup již běžícího procesu

  1. Jak zjistit, zda proces běží uvnitř lxc/Docker?

  2. Jak grep \nv souboru

  3. Jak zjistit, který proces používá soubor v Linuxu?

  1. Jak mohu vědět, který proces používá swap?

  2. Jak mohu zjistit, který proces má soubor otevřený v Linuxu?

  3. Jak zjistím, který běžící proces používá javu?