web-dev-qa-db-fra.com

Qu'est-ce qui mange mon espace disque?

Je couronne Linux Mint 14 Nadia. La partition Linux a 10g. Lorsque le système commence, du rapporte 80% d'utilisation. Ensuite, l'utilisation augmente lentement jusqu'à ce qu'elle atteigne 100% et que le système devient inutilisable. (Cela peut arriver sur l'ordre des jours ou des semaines). Après le redémarrage, l'utilisation réveille à 80%.

La chose la plus étrange de tous est que du montre aucun changement.

La production de ces commandes (Windows et cloisons d'entraînement externes sont-elles élues):

# --- Just after reboot ---

$ df -h     
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  7.3G  2.0G  80% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            428M  292K  428M   1% /dev
tmpfs            88M  1.3M   87M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            437M  288K  437M   1% /run/shm
none            100M   12K  100M   1% /run/user

$ Sudo du -x   -d1 -h /
186M    /opt
512M    /var
11M /sbin
556K    /root
1.3G    /home
613M    /lib
8.0K    /media
4.6G    /usr
16K /lost+found
111M    /boot
39M /etc
4.0K    /mnt
60K /tmp
9.1M    /bin
4.0K    /srv
7.3G    /            # <-- note this


# --- After some time ---

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       9.8G  9.1G  199M  98% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            428M  292K  428M   1% /dev
tmpfs            88M  1.3M   87M   2% /run
none            5.0M     0  5.0M   0% /run/lock
none            437M   27M  411M   7% /run/shm
none            100M   28K  100M   1% /run/user

$  Sudo du -x   -d1 -h /
186M    /opt
511M    /var
11M /sbin
556K    /root
1.4G    /home
613M    /lib
8.0K    /media
4.6G    /usr
16K /lost+found
111M    /boot
39M /etc
4.0K    /mnt
520K    /tmp
9.1M    /bin
4.0K    /srv
7.3G    /              # <-- note this

(Remarque: j'utilise Hibernation. Après l'hibernation, l'utilisation reste la même, et après le redémarrage, il réinitialise à 80%.)

Comment puis-je suivre ce qui mange l'espace?

J'ai lu cette question . Je suis toujours dans le noir. Comment puis-je savoir quel programme est responsable de ce comportement?

après Edition : Trouvé. L'espace est réclamé par le journal du noyau, qui est vu par dmesg. Il se remplit car ma machine génère des erreurs au taux 5 une seconde. (Il est lié à - ce bogue .) Laissez les futurs lecteurs ayant un problème similaire - un espace disque de remplissage lentement invisible par du - N'oubliez pas d'essayer dmesg dans la recherche pour la cause.

13
Arry

Exécution répétée de

Sudo du -x   -d1 -h /

(Le bas de l'arborescence de répertoire) devrait vous dire où l'espace est consommé. Cela explique probablement sans autre enquête que l'application cause cela.

Fichiers invisibles

Si du _ ne montre pas ces fichiers, l'une des possibilités sont supprimées des fichiers supprimés. Un fichier (ou plutôt: son nom I.e. Son entrée dans un répertoire) peut être supprimé pendant que le fichier est toujours utilisé. Tant qu'il existe un descripteur de fichier valide pointant sur ce fichier, il couvre l'espace du volume (s'il ne s'agit pas d'un fichier vide ...).

cat >file &
ls -l file
rm file
ls -l file
# PID of cat is 19834
ls -l /proc/19834/fd
lrwx------ 1 hl hauke 64 11. Feb 19:16 0 -> /dev/pts/0
l-wx------ 1 hl hauke 64 11. Feb 19:16 1 -> /crypto/home/hl/tmp/file (deleted)
lrwx------ 1 hl hauke 64 11. Feb 19:15 2 -> /dev/pts/0

Vous pouvez trouver ces fichiers avec find:

find /proc/ -mindepth 3 -maxdepth 3 \
-regex '/proc/[1-9][0-9]*/fd/[1-9][0-9]*' -type l -lname '*(deleted)' \
-printf '%p\n     %l\n' 2>/dev/null

Ce peut être un seul fichier énorme ou un groupe de fichiers plus petits qui causent votre problème. Il y a environ 30 fichiers de ce système maintenant (appartenant à seulement cinq processus). ls -l montre la taille de ces fichiers, mais il semble ne pas être possible d'obtenir cette valeur de find.

Après avoir tué le processus, l'espace devient disponible pour le système de fichiers (df) à nouveau.

15
Hauke Laging
find / -size +10000k -print0 | xargs -0 ls -l -h

Utilisez ceci pour trouver récursivement ce qui remplisse plus de 10 Mo + de / (racine) et l'afficher avec beaucoup de détails avec ls -l dans xargs. Si vous écrivez 1000000 (2 zéros supplémentaires), vous pouvez obtenir 1 Go + par exemple.

du / -h --max-depth=1 | sort -h

Vous pouvez également utiliser DU, et juste creuser en elle manuellement.

4
Adionditsak

Chaque fois que cela se produit, je commence toujours mon objectif dans certains sous-répertoires. La structure de la FHS que la plupart des distributions Linux adhèrent à cela à l'esprit.

Premier regard dans /var, suivie par /home.

$ Sudo du -x -d1 -h /var  | sort -hr`

$ Sudo du -x -d1 -h /home | sort -hr`

Vous pouvez également vous concentrer sur les sous-répertoires dans l'un ou l'autre de ces endroits. Une fois que vous avez épuisé là-bas, je passe habituellement à /root et enfin les sous-répertoires restants à /.

Si c'est une distribution de chapeau rouge, le cache que yum utilise pour effectuer des mises à jour pourrait consommer une grande quantité d'espace. Vous pouvez utiliser cette commande pour l'effacer:

$ yum clean packages

Autres distributions qui utilisent apt peuvent faire quelque chose de similaire, apt-get clean.

J'exécuterais aussi cette commande en haut de votre / Répertoire, cet emplacement peut parfois devenir la source des fichiers journaux errants.

$ ls -la /

Portez une attention particulière aux fichiers DOT! Les choses nommées .blah, par exemple.

1
slm

timeshift mangeait mon disque.

Sudo timeshift -delete--all

Récupéré 50 Go.

1
Raul Pinheiro

J'ai presque la même situation.

Dans mon cas, la raison était VMware. L'un des autres vmwares sur la même machine, il a consommé les espaces de disque. C'est pourquoi mon utilisation de l'espace disque était de 100%.

Après avoir supprimé de grands fichiers du VMware du voisin, cela fonctionne correctement.

0
pchero