GNU/Linux >> Tutoriels Linux >  >> Linux

df sous Linux n'affiche pas l'espace libre correct après la suppression du fichier

Solution 1 :

La suppression du nom de fichier ne supprime pas réellement le fichier. Un autre processus maintient le fichier ouvert, empêchant sa suppression ; redémarrez ou arrêtez ce processus pour libérer le fichier.

Utilisez

lsof +L1

pour savoir quel processus utilise un fichier supprimé (non lié).

Solution 2 :

comme le mentionne Ignacio, la suppression du fichier ne libérera pas d'espace tant que vous n'aurez pas supprimé les processus qui ont des descripteurs ouverts sur ce fichier.

Néanmoins, vous pouvez récupérer l'espace sans tuer les processus. Tout ce que vous avez à faire est de supprimer les descripteurs de fichiers.

Exécutez d'abord lsof | grep supprimé pour identifier le processus contenant le fichier

[[email protected] log]$ /usr/sbin/lsof |grep deleted
java       8859   hudson    1w      REG              253,0 3662503356    7578206 /crucible/data/current/var/log/fisheye.out (deleted)

Exécutez ensuite :

cd /proc/PID/fd

puis

[[email protected] fd]$ ls -l |grep deleted
total 0
l-wx------ 1 hudson devel 64 Feb  7 11:48 1 -> /crucible/data/current/var/log/fisheye.out (deleted)

Le "1" sera le descripteur de fichier. Tapez maintenant "> FD" pour récupérer cet espace

> 1

Vous devrez peut-être répéter l'opération si d'autres processus contiennent le fichier.

Solution 3 :

Une possibilité est que le ou les fichiers que vous avez supprimés aient plus de références dans le système de fichiers. Si vous avez créé des liens physiques, plusieurs noms de fichiers pointeront vers les mêmes données, et les données (le contenu réel) ne seront pas marquées comme libres/utilisables tant que toutes les références à celles-ci n'auront pas été supprimées. Avant de supprimer des fichiers, notez-les (Entrée nommée Liens) ou faites ls -l dessus (devrait être la deuxième colonne).

S'il s'avère que les fichiers sont référencés ailleurs, je suppose que vous devrez ls -i le ou les fichiers pour trouver le numéro d'inode, puis effectuer une recherche avec -inum pour trouver le d'autres références à ce fichier (vous voudrez probablement aussi utiliser -mount pour rester également dans le même système de fichiers).

Solution 4 :

Si la partition a été configurée pour réserver une certaine partie de l'espace disque uniquement à l'usage root, df n'inclura pas cet espace comme disponible.

[[email protected]]# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/optvol           625G  607G     0 100% /opt
...

Même après que l'espace aura été récupéré en supprimant des fichiers/répertoires, l'utilisateur non root ne pourra pas écrire sur une partition particulière.

Vous pouvez facilement vérifier si c'est votre cas en essayant de créer un fichier sur un appareil en tant qu'utilisateur root et non root.

De plus, vous pouvez vérifier la configuration du système de fichiers en exécutant

tune2fs -l <device> | egrep "Block count|Reserved block count

et en calculant vous-même le pourcentage réel.

Pour modifier le pourcentage de disque réservé à une utilisation root uniquement, exécutez

tune2fs -m <percentage> <device>

Solution 5 :

Le fichier est toujours verrouillé par le processus qui l'ouvre. Pour libérer de l'espace, procédez comme suit :

  1. Exécutez sudo lsof | grep deleted et voir quel processus détient le fichier. Exemple de résultat :

    $ sudo lsof | grep deleted
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
    cron     1623 root    5u   REG   0,21        0 395919638 /tmp/tmpfPagTZ4 (deleted)
    
  2. Tuez le processus en utilisant sudo kill -9 {PID} . Dans l'exemple ci-dessus, le PID est 1623.

    $ sudo kill -9 1623
    
  3. Exécutez df pour vérifier si l'espace est déjà libéré. S'il est toujours plein, vous devrez peut-être attendre quelques secondes et vérifier à nouveau.


Linux
  1. 7 astuces de ligne de commande Linux pour économiser de l'espace sur les fichiers multimédias

  2. Utilisez df pour vérifier l'espace disque libre sous Linux

  3. Comment créer ou augmenter l'espace d'échange sous Linux

  4. Linux - Kali Linux est installé mais ne s'affiche pas dans le gestionnaire de démarrage ?

  5. Linux + Comment ignorer (filtrer) un fichier avec de l'espace ?

Vérifier l'espace disque libre sous Linux avec ncdu

5 commandes Linux pour vérifier l'espace disque libre

Comment étendre l'espace d'échange à l'aide du fichier d'échange sous Linux

Comment vérifier l'espace disque libre sur Linux

Comprendre votre espace disque via la commande 'df' sous Linux

Comment utiliser Linux pour récupérer des fichiers supprimés