GNU/Linux >> Znalost Linux >  >> Linux

Linuxový souborový systém se plní, i když nejsou žádné velké soubory nebo adresáře

Problém

V systému založeném na Linuxu se kořenový souborový systém zaplňuje neznámým procesem. Pokračuje bez ohledu na to, jaké soubory jsou přesunuty nebo vyčištěny ze systému souborů.

# df -hP /
/dev/mapper/VGExaDb-LVDbSys1    ext3     30G   29G     0 100%    /

Neexistují žádné velké soubory, které by odpovídaly celému systému souborů:

# find / -xdev -type f -size +100M -exec ls -lh {} \;

Neexistují žádné velké adresáře, které by odpovídaly celému systému souborů:

# du -h --max-depth=1 /
42M     /sbin
13M     /etc
2.4G    /usr
45M    /tmp
451M   /var
192M   /lib
(and so on)
...

Řešení

V jednom okamžiku v minulosti dva nebo více procesů používalo soubor; například/tmp/top.log. Jeden proces zastavil svůj přístup k /tmp/top.log tím, že jej smazal (ve skutečnosti je to položka adresáře) a druhý proces pokračoval v zápisu do reference inodu, což umožnilo, aby se soubor dále rozrůstal.

To lze vidět na výstupu:„lsof +L 1

# lsof +L 1
COMMAND    PID      USER   FD     TYPE   DEVICE     SIZE/OFF      NLINK          NODE       NAME
top        34261    root   1W     REG   252,0       21460567592   0              1785896    /tmp/top.log (deleted)

Ostatní soubory byly také uvedeny, ale byly mnohem menší.

To ukazuje, že uživatel=root spouštěl top příkaz, který byl zařazován do /tmp/top.log, a že v současné době neexistují žádné odkazy na tento soubor. Tento zařazovací soubor měl velikost 21 Gb, ale nehlásil se ve výstupu „du –h –max-depth=1 /“, kde /tmp bylo uvedeno pouze 45M.

Pro identifikaci a ukončení takového procesu postupujte podle následujících kroků.

1. Identifikujte soubory v systému, které mají méně než 1 odkaz, pomocí příkazu:

# lsof +L 1

2. Zabijte všechny procesy, které zapisují do jakéhokoli uvedeného neobvykle velkého souboru. Ve výše uvedeném příkladu byste spustili:

# kill 34261

3. Prostor se uvolní, když konečný proces přestane soubor používat.


Linux
  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Přesouvání souborů na Linuxu bez mv

  3. Snadný způsob, jak skrýt soubory a adresáře v Linuxu

  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Najít všechny soubory Pythonu v systému souborů Linux?

  3. Binární rozdíl/patch pro velké soubory na linuxu?

  1. Jak najít soubory ve formátu DOS v systému souborů linux

  2. Proč v systému Linux nemohu vytvářet soubory větší než 2 GB?

  3. Rockově stabilní souborový systém pro velké soubory (zálohy) pro linux