En traitant l'ancienne boîte CentOS 5.6, sans configuration lvm, mon système de fichiers racine / est plein, j'ai effacé de nombreux anciens fichiers journaux et fichiers d'application dont je n'ai pas besoin, qui mesuraient plus de 2 à 5 Go, mais mon système signale toujours que le disque est plein.
[root@tornms1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 130G 124G 0 100% /
/dev/sdb1 264G 188M 250G 1% /data
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@tornms1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdb1 on /data type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Une idée sur ce que je devrais essayer de faire ensuite? malheureusement, le redémarrage de la boîte n'est pas une option pour le moment.
/.Trash/
est vide? As-tu faitsudo rm -Rf ~/.Trash/*
?Réponses:
Deux choses pourraient se produire ici.
Tout d'abord , votre système de fichiers a réservé un espace qui ne
root
peut écrire, afin que le processus système critique ne tombe pas lorsque les utilisateurs normaux manquent d'espace disque. C'est pourquoi vous voyez 124G sur 130G utilisés, mais aucun disponible. Peut-être que les fichiers que vous avez supprimés ont réduit l'utilisation à ce stade, mais pas en dessous du seuil pour les utilisateurs normaux.Si tel est votre cas et que vous êtes désespéré, vous pourrez peut-être modifier la quantité d'espace réservé pour
root
. Pour le réduire à 1% (la valeur par défaut est 5%), votre commande seraitDeuxièmement , le système d'exploitation ne libérera pas d'espace disque pour les fichiers supprimés qui sont toujours 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.
la source
Si vous supprimez un fichier utilisé par un processus, vous ne pouvez plus afficher le fichier par
ls
. Le processus écrit toujours dans ce fichier jusqu'à ce que vous arrêtiez le processus.Pour afficher ces fichiers supprimés, exécutez simplement
lsof|grep delete
la source
2 autres façons d'obtenir le disque sont un problème complet :
1) caché sous un point de montage: Linux affichera un disque complet 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 de voir si quelque chose a été accidentellement écrit dans ces répertoires avant le montage.
2) fichiers corrompus: je vois cela de temps en temps 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 à corriger, 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 la
du
commande et fais une liste des sous-répertoires racine pour savoir où l'espace fichier est utilisé.Le nombre de répertoires de niveau supérieur est généralement limité, j'ai donc mis le drapeau lisible par l'homme
-h
pour voir quel sous-répertoire est le porc de l'espace.Ensuite, vous entrez dans l'enfant à problème et répétez le processus pour tous les éléments qu'il contient. Pour faciliter la repérage des gros articles, nous changeons légèrement le du et le couplons avec une sorte.
qui produit une sortie du plus petit au plus grand par taille d'octet pour tous les fichiers et répertoires
Une fois que vous avez repéré le fichier surdimensionné, vous pouvez généralement le supprimer.
la source
Vous pouvez découvrir quels fichiers sont ouverts avec lsof. Cela peut produire beaucoup de sortie, donc je me suis limité dans l'exemple ci-dessous aux lignes se terminant par log:
la source
Si certains fichiers sont supprimés mais toujours utilisés par un processus, l'espace ne sera pas libéré. Dans ce cas, redémarrez un processus qui utilise le fichier ou annulez le fichier. C'est toujours une bonne pratique d'annuler ces fichiers au lieu de les supprimer. Pour rechercher des fichiers supprimés mais toujours utilisés par certains processus
il donnera l'ID de processus et le descripteur de fichier. Pour annuler la suppression d'un fichier par un descripteur de fichier
la source
Tapez la commande
Qui affichera la liste des fichiers contenant de la mémoire avec un devis supprimé.
Notez le pid (Process id) du fichier
Tuez le processus
La mémoire sera libérée par le processus
Vérifiez-le par commande
la source
En plus de ce qui a été expliqué, le problème pourrait être qu'il existe un autre point de montage du répertoire de fichiers supprimé sur un autre périphérique de disque connecté sur le même serveur. Vérifiez les montages actuels et les entrées fstab.
la source
Problème réel observé dans la nature:
Assurez-vous de supprimer les fichiers réels et non les liens symboliques vers les fichiers. Cela peut être le cas notamment pour les fichiers journaux.
la source