web-dev-qa-db-fra.com

Pourquoi df et du affichent-ils des sorties différentes?

Lorsque j'exécute la commande df -h /tmp elle indique l'utilisation du disque vaut 100%, mais lorsqu'elle tente du -sh /tmp elle indique l'utilisation du disque vaut 2%.

Je veux savoir pourquoi ces commandes affichent des sorties différentes, comment fonctionnent ces deux commandes et quelle est la solution à ce problème.

Context:/tmp est installé sur son propre système de fichiers. J'utilise l'édition serveur Ubuntu 12.04 sur mon compte VPS. En raison de ce problème d'utilisation de /tmp 100% selon df, certains programmes se plaignent de l'espace disponible dans /tmp.

8
Nischay

du rapporte l'espace disponible en analysant les inodes accessibles et en calculant leur taille.

Si un fichier est créé, ouvert, puis supprimé alors qu'il est toujours ouvert, le programme qui l'a ouvert continuera à avoir accès au fichier. Des écritures et des lectures peuvent être effectuées dans cet emplacement de mémoire sur le disque. du ne prend pas en compte de tels fichiers ouverts alors que df le fait.

Un simple redémarrage devrait vider/tmp et résoudre votre problème.

Une alternative serait d'analyser les fichiers ouverts et de redémarrer ou de tuer le processus qui n'a pas libéré les fichiers supprimés.

10
Mahesh

Certains fichiers du système de fichiers racine peuvent être cachés derrière un point de montage. Les fichiers peuvent être créés sous le point de montage lorsque le périphérique correspondant n'est pas monté et lorsque le périphérique est remonté, les fichiers ne sont pas comptés par la commande du. Problème très probable, quand il y a une grande différence entre les résultats du et df.

1
Nick