Deux choses pourraient se produire ici.
Premier , votre système de fichiers a réservé un espace que seul root
peut écrire, afin que les processus système critiques ne tombent pas lorsque les utilisateurs normaux manquent d'espace disque. C'est pourquoi vous voyez 124G de 130G utilisés, mais zéro disponible. Peut-être que les fichiers que vous avez supprimés ont ramené l'utilisation à ce point, mais pas en dessous du seuil pour les utilisateurs normaux.
Si telle est votre situation et que vous êtes désespéré, vous pourrez peut-être modifier la quantité d'espace réservée pour root
. Pour le réduire à 1 % (la valeur par défaut est 5 %), votre commande serait
# tune2fs -m 1 /dev/sda3
Deuxième , le système d'exploitation ne libérera pas d'espace disque pour les fichiers supprimés qui sont encore ouverts. Si vous avez supprimé (par exemple) l'un des fichiers journaux d'Apache, vous devrez redémarrer Apache afin de libérer de l'espace.
Si vous supprimez un fichier qui est utilisé par un processus, vous ne pouvez plus afficher le fichier par ls
. Le processus continue d'écrire dans ce fichier jusqu'à ce que vous arrêtiez le processus.
Pour afficher ces fichiers supprimés, exécutez simplement lsof|grep delete
2 autres façons d'obtenir que le disque est plein problème :
1) caché sous un point de montage : Linux affichera un disque plein avec des fichiers "cachés" sous un point de montage. Si vous avez des données écrites sur le lecteur et montez un autre système de fichiers dessus, Linux note correctement l'utilisation du disque même si vous ne pouvez pas voir les fichiers sous le point de montage. Si vous avez des montages nfs, essayez de les démonter et regardez si quelque chose a été accidentellement écrit dans ces répertoires avant le montage.
2) fichiers corrompus : Je vois cela occasionnellement sur le transfert de fichiers Windows vers Linux via SMB. Un fichier ne parvient pas à fermer le descripteur de fichier et vous vous retrouvez avec un fichier de 4 Go de corbeille.
Cela peut être plus fastidieux à résoudre, car vous devez trouver le sous-répertoire dans lequel se trouve le fichier, mais il est facile à résoudre car le fichier lui-même est facilement amovible. J'utilise le du
commande et faites une liste des sous-répertoires racine pour savoir où l'espace fichier est utilisé.
cd /
du -sh ./*
Le nombre de répertoires de niveau supérieur est généralement limité, j'ai donc défini le lisible par l'homme indicateur -h
pour voir quel sous-répertoire occupe le plus d'espace.
Ensuite, vous accédez à l'enfant problématique et répétez le processus pour tous les éléments qu'il contient. Pour faciliter le repérage des éléments volumineux, nous modifions légèrement le du et le couplons à un sort.
cd /<suspiciously large dir>
du -s ./* | sort -n
qui produit une sortie du plus petit au plus grand par taille d'octet pour tous les fichiers et répertoires
4 ./bin
462220 ./Documents
578899 ./Downloads
5788998769 ./Grocery List
Une fois que vous avez repéré le fichier surdimensionné, vous pouvez généralement simplement le supprimer.