
Heute sind mir auf einem meiner VPS die Inodes ausgegangen.
Ich habe eine Reihe überflüssiger kleiner Dateien gelöscht und so genügend Inodes freigegeben, um das System wieder betriebsbereit zu machen:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/simfs 586K 529K 58K 91% /
Ich habe außerdem einen kurzen Befehl zusammengehackt, der mir die Anzahl der verwendeten Inodes anzeigt (im Wesentlichen listet er alle Dateien mit ihren Inode-Nummern auf, filtert Duplikate heraus und zählt die Zeilen des Ergebnisses):
sudo find / -xdev -type f -printf '%i~%P\n' > files.txt
<files.txt | sort -u -t'~' -k1,1 > inodes.txt
wc -l files.txt inodes.txt
1513608 files.txt
275320 inodes.txt
Es sieht also so aus, als ob die Dateien /
nur 275.000 Inodes belegen, aber df
eine Nutzung von 529.000 melden.
Wie kann das sein?
(Ich habe das System sogar neu gestartet, um alle Inodes freizugeben, die noch durch Prozesse gesperrt waren, aber das hat an der Anzahl der verwendeten Inodes überhaupt nichts geändert.)
Antwort1
Verwenden Sie eine Bind-Einbindung anstelle von -xdev
. Außerdem verwenden Verzeichnisse auch Inodes.
mkdir /mnt/somewhere
mount -o bind / /mnt/somewhere
find /mnt/somewhere -printf '%i\n' | sort -u | wc -l