Manque d'inodes

Réponses:

24

Le nombre d'inodes est défini au moment du formatage de la partition. Normalement, le nombre d'inodes créés est suffisant pour presque tous les usages; cependant, si vous avez un grand nombre de très petits fichiers, vous pouvez utiliser les inodes avant que le disque ne soit plein.

Vous devez trouver les milliers de petits fichiers que vous avez sur le système qui utilisent des inodes et les supprimer ou les déplacer vers une partition qui a été spécifiquement configurée avec un très grand nombre d'inodes disponibles. Il n'est pas possible de modifier le nombre d'inodes disponibles sur une partition après son formatage.

Le script écrit par paxdiablo sur stackoverflow peut être un moyen pratique de vérifier l'utilisation excessive de petits fichiers que vous ignorez peut-être. Le voici à nouveau:

#!/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_$$

Mettez ce script dans le fichier texte ~ / bin / count_em puis lancez la commande

chmod +x ~/bin/count_em

pour le rendre exécutable. Si vous deviez créer le répertoire ~ / bin, il ne sera pas encore dans le chemin exécutable, alors déconnectez-vous et reconnectez-vous.

Pour exécuter le programme, vous tapez simplement

count_em

et il listera les numéros de tous les fichiers dans le répertoire courant et les sous-répertoires par répertoire, avec le nombre le plus élevé en dernier. Très utile!

fabricant4
la source
CETTE LIGNE> chmode + x ~ / bin / count_em est en fait> chmod + x ~ / bin / count_em
1
est-il nécessaire de supprimer tous ces fichiers créés par l'utilisateur, ou les déplacer dans l'archive tar fera-t-il l'affaire?
amc
Les archiver est un excellent moyen de les traiter, il ne supprime pas les données des utilisateurs mais leur fait prendre conscience que leur comportement n'est pas satisfaisant car ils ne pourront pas utiliser les fichiers comme ils l'étaient auparavant. Il y a de fortes chances que le grand nombre de fichiers soit généré par quelque chose que personne n'utilise et qu'ils puissent être supprimés en toute sécurité, mais c'est un risque.
LovesTha
Une bonne alternative sur une seule ligne à votre script pourrait êtresudo du -a -d 1 --inodes . | sort -nr | head -20
Charles Green
1
Bien sûr, cela ne fonctionne pas si vous êtes complètement à court d'inodes car il crée des fichiers temporaires :(
Molomby
8

Vous pouvez également afficher une liste triée de répertoires par nombre d'inodes, à l'aide de cette commande: du --inodes -d 3 / | sort -n | tail

De là, vous pouvez déterminer les répertoires à supprimer

johnL
la source
1
unrecognized option '--inodes'sur Ubuntu 14.04, fyi
Molomby
Pourquoi utilisez-vous Ubundu 14.04 en 2019? Je vois qu'il a des coreutils 8.21 de février 2013, l' --inodesoption a été ajoutée juil 2013 lmao
ZN13
2

J'ai trouvé que l'utilisation de l'inode provenait de /root/.local et j'ai supprimé ce dossier.

xaav
la source
2
Rien de plus ne devrait utiliser /root/.local et ce n'est là que pour des raisons de compatibilité. Vous devez savoir ce qui écrivait de nombreux petits fichiers dans ce répertoire.
fabricator4