Trouver les fichiers volumineux [du] ?

WRInaute discret
Bonsoir,

J'ai quelque interrogations sur deux commandes assez basiques : "du" et "df". En fait je n'ai que 5Go pour la racine sur mon RPS, j'ai donc dû déménager les logs vers /home. Il restait quand même un fichier log fantôme de 2.3Go dans /var/log/... que j'ai supprimé aujourd'hui.
Malheureusement je n'ai pas gagné un octet sur /dev/sda1 depuis que j'ai supprimé ce fichier. Voilà un "df" qui montre que j'ai 1,8Go de dispo sur /dev/sda1 soit moins que la taille du fichier que je viens de supprimer !

Code:
# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/sda1             5,0G  3,1G  1,8G  64% /
tmpfs                 1,5G     0  1,5G   0% /lib/init/rw
udev                   10M  2,7M  7,4M  27% /dev
tmpfs                 1,5G  252M  1,3G  17% /dev/shm
/dev/sda2              15G  989M   14G   7% /home

Pour essayer de comprendre je fais un "du" :

Code:
# du -h --max-depth=1
255M	./dev
4,0K	./opt
4,7M	./etc
4,0K	./mnt
4,8M	./bin
16K	./tmp
8,0K	./media
0	./sys
4,9M	./boot
4,0K	./srv
du: ne peut accéder `./proc/27635/task/27635/fd/4': Aucun fichier ou répertoire de ce type
du: ne peut accéder `./proc/27635/task/27635/fdinfo/4': Aucun fichier ou répertoire de ce type
du: ne peut accéder `./proc/27635/fd/4': Aucun fichier ou répertoire de ce type
du: ne peut accéder `./proc/27635/fdinfo/4': Aucun fichier ou répertoire de ce type
0	./proc
8,1M	./lib
4,0K	./selinux
494M	./usr
16K	./lost+found
140K	./root
14M	./sbin
824M	./home
92M	./var
1,7G	.

qui lui me dit (si je comprends bien) que j'ai 1,7Go d'utilisé sur l'ensemble du système soit deux fois moins que ce que le "df" annonce rien que sur /dev/sda1. Est-ce que je comprends rien à "du" et "df" ou est-ce qu'il y a bien un problème ?
 
WRInaute accro
Si tu supprimes un fichier qui est encore ouvert, le fichier existe toujours, mais n'est plus visible. Il sera effectivement supprimé (et l'espace correspondant libéré) dès que tous les programmes qui y accèdent l'auront fermé (explicitement ou implicitement parce que le programme s'est arrêté).

C'est un problème classique avec les logs. Il faut alors faire en sorte que le(s) programme(s) qui accéde(nt) à ce fichier le ferme(nt). Si tu nous dis quel fichier c'était (et donc de quel programme il s'agit) on doit pouvoir t'aiguiller sur la façon de procéder. La façon la plus brutale c'est d'arrêter/relancer le processus en question, mais certains ont un moyen plus subtil d'effectuer de gérer la "rotation" des fichiers (en général un signal particulier à leur envoyer, genre kill -HUP ou kill -USR1...).

Jacques.
 
WRInaute discret
Whaou ! Merci, c'est exactement ça. En fait c'est un log apache et j'avais oublié de faire un restart d'apache. Après un restart la mémoire a bien été libérée :

Code:
# df
Sys. de fich.        1K-blocs       Occupé Disponible Capacité Monté sur
/dev/sda1              5201536    785584   4153808  16% /
tmpfs                  1527212         0   1527212   0% /lib/init/rw
udev                     10240      2696      7544  27% /dev
tmpfs                  1527212    258248   1268964  17% /dev/shm
/dev/sda2             15600624   1029588  13784812   7% /home

Je respire ! Bon, le problème c'est que du coup, le fichier est réapparu... et je viens de trouver quel fichier de conf utilisait ce maudit fichier. Donc c'est bon tout est rentré dans l'ordre, je n'ai plus de logs apache sur la racine.

Merci mille fois jcaron !
 
Discussions similaires
Haut