253 votes

df sous linux n'indique pas l'espace libre correct après la suppression d'un fichier

J'ai des serveurs de fichiers qui sont utilisés pour stocker des fichiers. Les fichiers peuvent y résider pendant une semaine, ou pendant un an. Malheureusement, quand je retire des fichiers du serveur, df ne reflète pas l'espace libéré. Donc finalement, le serveur se remplit ( df montre 99%), et mon script n'y envoie plus de fichiers, sauf qu'il pourrait y avoir quelques dizaines de Go d'espace libre.

J'ai noatime sur les partitions montées si cela fait une différence.

0 votes

Cela se produit-il sur une seule partition ou sur toutes les partitions ?

0 votes

Eh bien, cela se passe sur ma partition de données principale, qui est la seule dont je me soucie, puisque je ne fais qu'écrire/supprimer des fichiers sur celle-ci.

0 votes

Veuillez m'éclairer en me donnant la solution, ou un lien vers celle-ci.

2voto

user1802263 Points 29

Puisque je sais qu'une tonne d'entre vous font ça pour redhat en /var et gzippant des fichiers en s'attendant à ce que le FS se réduise, mais au lieu de cela il s'agrandit, assurez-vous simplement que vous avez le service syslog restart. et

lsof -v file

te montrerait ça de toute façon.

1 votes

Cela n'ajoute pas grand-chose ; la réponse acceptée couvrait la logique derrière cela en 2001. Lorsque vous aurez 50 représentants, utilisez les commentaires si vous souhaitez ajouter des qualificatifs aux réponses existantes.

2voto

Bruno Points 21

Une des raisons pour lesquelles il manque de l'espace disque (un scénario que je viens de rencontrer moi-même parce que je n'ai manifestement pas fait ce que je fais normalement lorsque je crée un nouveau tableau), est la suivante...

Habituellement, je libère tout l'espace disque disponible, y compris les 5% réservés à l'utilisateur root (tune2fs -m0), puisqu'il s'agit d'un système de serveur de fichiers mono-utilisateur. Cependant, j'étais soudainement coincé avec 0 octet libre selon df, mais la différence entre l'espace total et l'espace utilisé disait autre chose.

Puisque j'étais certain d'avoir libéré ces 5% réservés par défaut dans au moins Fedora (et d'avoir quelques dossiers vides au lieu d'avoir les fichiers que je venais de copier... ou que je pensais avoir), j'ai commencé à transpirer et à chercher désespérément un moyen de résoudre ce problème, en redémarrant, en essayant "lsof" et ce genre de choses.

Finalement, j'ai décidé d'exécuter tune2fs -m0 sur le système de fichiers même si j'étais certain que ce n'était pas la cause - mais ça l'était ! Un peu plus de 400G sont devenus disponibles comme il se doit. Oui, je sais... mon erreur, mais néanmoins mon commentaire pourrait être utile à d'autres personnes qui oublient cet espace réservé ou croient fermement l'avoir libéré. c",)

1voto

Andrew Grimm Points 928

Les autres réponses sont correctes : si vous supprimez un fichier et que l'espace n'est pas libéré, c'est généralement parce que le fichier est toujours ouvert ou qu'il existe d'autres liens durs avec lui.

Pour faciliter le dépannage, utilisez un outil qui vous indique où l'espace disque est dépensé : Vous pouvez utiliser du pour avoir une vue d'ensemble de l'utilisation de l'espace. Mieux encore, utilisez un outil graphique comme xdiskusage (il y en a beaucoup comme ça) pour traquer le coupable. xdiskusage et ses amis vous permettent d'explorer en profondeur les plus gros consommateurs d'espace pour trouver où va l'espace.

De cette façon, vous trouverez rapidement les fichiers qui occupent encore de l'espace à cause d'un deuxième lien dur. Il montrera également l'espace occupé par des fichiers supprimés, mais ouverts (comme (permission denied), je crois, puisqu'il ne peut pas lire le nom du fichier).

1voto

Chen Levy Points 263

Une option de plus : Le disque peut être plein à cause d'un processus qui crée continuellement des données : journaux, cœurs et autres. Il est possible que de l'espace soit libéré mais qu'il soit immédiatement rempli. J'ai déjà vu un tel cas. df dans ce cas ne donne simplement pas l'image du trou. Utilisez du pour en savoir plus.

0voto

Marcellus Points 1

J'utilise EXT2, FSCK m'a aidé dans cette situation. Essayez shudown -F maintenant, après quelques redémarrages et fscks, je vois la moitié de l'espace utilisé.

1 votes

Cher Marcellus, ta solution est englobée par la réponse acceptée ; et parfois on ne veut pas faire de redémarrage si on n'y est pas obligé...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X