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.

0voto

Raj yadav Points 1

Au lieu de supprimer les fichiers, nous pouvons tronquer le fichier, par exemple cat /dev/null> file.log. La taille du fichier sera alors de 0 octet. Même si d'autres processus peuvent maintenir ce fichier ouvert, c'est sa taille que nous allons réduire afin d'utiliser l'espace disque.

-1voto

Javeed Shakeel Points 99

Pour vérifier quels fichiers supprimés ont occupé la mémoire, entrez la commande

 $ sudo lsof | grep deleted

Il montrera les fichiers supprimés qui occupent la mémoire.

Puis tuer le processus avec pid ou nom

$ sudo kill <pid>
$ df -h

vérifiez maintenant que vous avez la même mémoire

Sinon, tapez la commande suivante pour voir quel fichier occupe la mémoire

# cd /
# du --threshold=(SIZE)

mentionnez n'importe quelle taille il montrera quels fichiers occupent une taille supérieure au seuil et supprimez le fichier vous trouverez la mémoire retenue

-3voto

ZaPa Points 1

Une ligne :

kill -9 $(lsof | grep deleted | cut -d " " -f4)

3 votes

Cela va juste tuer un tas de programmes. Vous ne serez pas en mesure de savoir lesquels à l'avance. La raison pour laquelle vous voulez faire cela n'est pas claire non plus.

0 votes

Le script copier-coller n'est pas une chose très bien partie, je pense. Je suggère d'expliquer, ce que fait votre commande et comment.

-4voto

rilson Points 1

Ouvrez le terminal et essayez cette commande df -Th utilisez ensuite cette commande sudo du -h --max-depth=1 / dans cette commande vous trouverez le détail de l'utilisation du disque puis ouvrez en tant que super-utilisateur et supprimez le fichier (root-local-share-trash) et supprimez votre fichier

-4voto

Mythos Points 1

Si vous avez Windows 10 en double démarrage, vous pouvez essayer de démarrer dans Windows 10, puis d'aller dans Nettoyage de disque, de sélectionner le bon lecteur, puis de cliquer sur "Nettoyer les fichiers système". Cela a fonctionné pour moi. Bonne chance.

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