GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann man die Inode-Nutzung freigeben?

Meine Lösung:

Versuchen Sie herauszufinden, ob dies ein Inodes-Problem ist mit:

df -ih

Versuchen Sie, Root-Ordner mit einer großen Inodes-Anzahl zu finden:

for i in /*; do echo $i; find $i |wc -l; done

Versuchen Sie, bestimmte Ordner zu finden:

for i in /src/*; do echo $i; find $i |wc -l; done

Wenn es sich um Linux-Header handelt, versuchen Sie, die ältesten zu entfernen mit:

sudo apt-get autoremove linux-headers-3.13.0-24

Persönlich habe ich sie in einen gemounteten Ordner verschoben (weil für mich der letzte Befehl fehlgeschlagen ist) und die neueste installiert mit:

sudo apt-get autoremove -f

Dies hat mein Problem gelöst.


Meine Situation war, dass ich keine Inodes mehr hatte und bereits alles gelöscht hatte, was ich konnte.

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361     11  100% /

Ich bin auf einem Ubuntu 12.04LTS und konnte die alten Linux-Kernel nicht entfernen, die etwa 400.000 Inodes belegten, weil apt wegen eines fehlenden Pakets kaputt war. Und ich konnte das neue Paket nicht installieren, weil ich keine Inodes mehr hatte, also steckte ich fest.

Am Ende habe ich ein paar alte Linux-Kernel von Hand gelöscht, um etwa 10.000 Inodes

freizugeben
$ sudo rm -rf /usr/src/linux-headers-3.2.0-2*

Das war genug, um mich dann das fehlende Paket installieren und mein apt reparieren zu lassen

$ sudo apt-get install linux-headers-3.2.0-76-generic-pae

und entfernen Sie dann den Rest des alten Linux-Kernels mit apt

$ sudo apt-get autoremove

die Dinge sind jetzt viel besser

$ df -i
Filesystem     Inodes  IUsed  IFree IUse% Mounted on
/dev/sda1      942080 507361 434719   54% /

Es ist ziemlich einfach, dass eine Festplatte eine große Anzahl von Inodes verwendet, selbst wenn die Festplatte nicht sehr voll ist.

Ein Inode wird einer Datei zugewiesen, wenn Sie also Millionen von Dateien haben, die alle jeweils 1 Byte groß sind, werden Ihnen die Inodes ausgehen, lange bevor Ihnen die Festplatte ausgeht.

Es ist auch möglich, dass das Löschen von Dateien die Anzahl der Inodes nicht reduziert, wenn die Dateien mehrere feste Links haben. Wie gesagt, Inodes gehören zur Datei, nicht den Verzeichniseintrag. Wenn mit einer Datei zwei Verzeichniseinträge verknüpft sind, wird das Löschen eines Eintrags den Inode nicht freigeben.

Außerdem können Sie einen Verzeichniseintrag löschen, aber wenn ein laufender Prozess die Datei noch geöffnet hat, wird der Inode nicht freigegeben.

Mein erster Rat wäre, alle Dateien zu löschen, die Sie finden können, und dann die Box neu zu starten, um sicherzustellen, dass keine Prozesse mehr vorhanden sind, die die Dateien offen halten.

Wenn Sie dies tun und immer noch ein Problem haben, lassen Sie es uns wissen.

Übrigens, wenn Sie nach den Verzeichnissen suchen, die viele Dateien enthalten, kann dieses Skript hilfreich sein:

#!/bin/bash

# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

Wenn Sie sehr viel Pech haben, haben Sie ungefähr 100% aller Inodes verwendet und können das Skript nicht erstellen. Sie können dies mit df -ih überprüfen .

Dann kann Ihnen dieser Bash-Befehl helfen:

sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

Und ja, das wird einige Zeit dauern, aber Sie können das Verzeichnis mit den meisten Dateien finden.


Linux
  1. So benennen Sie Dateien unter Linux um

  2. So komprimieren Sie mehrere Dateien unter Linux

  3. So finden Sie freien Speicherplatz und analysieren die Festplattennutzung

  4. Linux – Wie weist Linux Inodes-Nummern auf Dateisystemen zu, die nicht auf Inodes basieren?

  5. So berechnen Sie die Speichernutzung in Linux mit sar, ps und free

So geben Sie Speicherplatz unter Ubuntu Linux frei

Wie wird die Top/htop-Speichernutzung interpretiert?

Wie verringert man die Inode-Nutzung in CPanel?

Wie überprüfe ich die Inode-Nutzung über cPanel und die Befehlszeile?

So finden Sie Dateien in Debian

So bereinigen Sie unnötige Dateien