Es ist ziemlich einfach für eine Platte, eine große Anzahl von Inodes zu verwenden, selbst wenn die Festplatte nicht sehr voll ist.
Ein Inode ist einer Datei zugeordnet. Wenn Sie also mehrere Dateien haben, die alle 1 Byte umfassen, haben Sie lange keine Inodes mehr, bevor Sie keine Festplatte mehr haben.
Es ist auch möglich, dass das Löschen von Dateien die Inode-Anzahl nicht verringert, wenn die Dateien mehrere feste Verbindungen haben. Wie gesagt, gehören Inodes zu der Datei, nicht der Verzeichniseintrag. Wenn eine Datei mit zwei Verzeichniseinträgen verknüpft ist, wird beim Löschen einer Datei der Inode nicht freigegeben.
Zusätzlich können Sie einen Verzeichniseintrag löschen, aber wenn ein laufender Prozess die Datei geöffnet hat, wird der Inode nicht freigegeben.
Mein erster Ratschlag wäre, alle Dateien zu löschen, die Sie können, dann starten Sie die Box neu, um sicherzustellen, dass keine Prozesse mehr offen bleiben.
Wenn Sie das tun und Sie immer noch ein Problem haben, lassen Sie es uns wissen.
#!/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_$$
Möchten Sie 50 Punkte für diese Frage geben. Wie kann ich! :) – Sophy
@Sophy Mach das nicht. du wirst automatisch gebannt bekommen –
@StevenLu Danke für deine Infos! Ich möchte ihm danken, weil ich ein paar Tage damit verbracht habe, mein Problem zu lösen. Aber dieses Problem kann mir helfen. Nochmals vielen Dank, – Sophy