Bonjour a tous. J'ai un problème récurrent qui m'agace très fortement. Parfois, mon disque se rempli rapidement sans raison. Par rapidement j'entend plusieurs giga en une heure ou deux. J'ai eu beau cherché quel programme pouvait générer autant d'écritures, j'ai pas réussi a l'identifier. J'ai regardé l'espace occupé sur le disque pour savoir quels fichiers posaient problème mais ils sont dur a localiser.
Seulement quand le disque est plein, le systeme de fichier tronque tous les fichiers ouverts, ce qui m'efface regulièrement certains fichiers de configurations comme kmail, kopete, et les travaux en cours. Parfois même, quand je supprime certains fichiers, ils ne sont plus visibles mais il ne libère l'espace qu'apres un reboot. Par exemple, avant de rebooter là j'avais 0 octets de libres et après reboot, 3,8Go. J'avais bien sur supprimé tous les fichiers temporaires avant de rebooter, mais l'espace se libérait pas.
Alors voila ma question, y a t'il un moyen de dire a Ext3, quand il devient plein, de ne pas tronquer les fichiers. Ou alors y a t'il un utilitiare du genre "top" pour les access disques ? Pour info je suis sur une ubuntu Intrepid mais je ne pense pas que ca joue.
Si une âme charitable pouvait me donner quelques conseils pour pister les programmes zélés ou dire a Ext3 de ne pas tout effacer comme un con, je lui en serait tres reconnaissant.
Merci bien.
# filelight et lsof
Posté par wismerhill . Évalué à 5.
Ensuite avec la commande lsof tu peux essayer de voir si ces fichiers sont encore ouverts par un processus.
[^] # Re: filelight et lsof
Posté par Fabimaru (site web personnel) . Évalué à 2.
Par contre, je me demande comment un programme peut détecter les fichiers encore ouverts mais qui n'ont plus de lien dans le système de fichiers (l'espace ne sera libéré qu'à la fermeture du programme).
[^] # Re: filelight et lsof
Posté par wismerhill . Évalué à 4.
En le demandant au noyau.
C'est exactement ce que fait lsof.
# Tracker le coupable ?
Posté par Ellendhel (site web personnel) . Évalué à 5.
Au besoin, vérifie les fichiers concernés indiqués sur la page d'aide correspondante sur le site francophone d'Ubuntu : http://doc.ubuntu-fr.org/tracker.
[^] # Re: Tracker le coupable ?
Posté par tipmeabout . Évalué à 2.
il a pas mis long feu à dégager de chez moi
# Deux choses:
Posté par Ph Husson (site web personnel) . Évalué à 4.
2.Va sur http://guichaz.free.fr/iotop/ pour avoir un top des accès disques (bon il est très rudimentaire mais ca suffit)
[^] # Re: Deux choses:
Posté par GTof . Évalué à 1.
[^] # Re: Deux choses:
Posté par Étienne . Évalué à 3.
Pour trouver la liste des fichiers qui sont supprimés mais toujours ouvert, on peut utiliser :
$ find /proc/*/fd -type f -links 0
Cela peut faire apparaitre des erreurs du style "File system loop detected" qu'une redirection de stderr vers /dev/null ferra disparaitre.
On peut même en récupérer le contenu en copiant le fichier vers un autre endroit. Et en prime on a le pid du fichier qui correspond au sous-répertoire de /proc, par exemple
/proc/3594/fd/3 - > /var/run/dhcpcd-br0.pid (deleted) est un fichier supprimé, qui est toujours ouvert par le programme de pid 3594.
Étienne
# find & du
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 3.
Genre:
find / -type d -exec du -smh {} \;
Attention, si tu ressors ça sur un fichier, ça va faire un fichier qui grandit rapidement :)
La gelée de coings est une chose à ne pas avaler de travers.
# log
Posté par B16F4RV4RD1N . Évalué à 2.
du -h /var/log
si tu vois que cela fait plusieurs giga, c'est sans doute qu'il y a un problème matériel ou logiciel qui se retrouve transcrit plusieurs fois par secondes dans les journaux (j'ai déjà vu cela, quelques giga en quelques heures). Avec dmesg tu pourras en savoir plus.
Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it
# Hmmm ...
Posté par LaBienPensanceMaTuer . Évalué à 3.
Sinon, lorsque j'ai besoin de trouver les fichiers responsables d'un remplissage impromptu, j'utilise la commande du -h -x --max-depth=1 à la base du système de fichiers en question, puis je descend dans l'arborescence en fonction de la sortie de du
Et comme il est dit plus haut, un fichier est effectivement supprimé du disque lorsque plus aucun processus ni accède.
Si par exemple, les logs apache sont les coupables, tu auras donc deux solutions:
1/ couper apache et supprimer le fichier avant de relancer apache.
2/ tronquer le fichier de log (genre echo > fichier).
Attention encore une fois, l'espace occupé par ces fichiers "en instance de disparition" apparaitra dans le df mais pas dans le du.
La commande lsof te permettra toutefois de les retrouver (status deleted).
[^] # Re: Hmmm ...
Posté par NeoX . Évalué à 3.
le plus efficace etant de lancer ces logiciels en tant que root pour pouvoir explorer toutes l'arborescence à partir de /
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
Et alors il fait quoi à la place ? Il invente de l'espace disque pour écrire le reste du fichier ? S'il te reste 3 octets libres (façon de parler, ça marche en blocs mais peu importe), et que tu veux écrire 6 octets, à partir du 4e octet, les écritures échoueront et ton fichier sera écrit à moitié.
[^] # Re: Hmmm ...
Posté par briaeros007 . Évalué à 2.
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
[^] # Re: Hmmm ...
Posté par briaeros007 . Évalué à 2.
Dans tous les cas prévenir l'utilisateur
Si le fichier n'a aucun intéret en étant incomplet, supprimer le fichier.
Si le fichier peut présenter un quelconque intéret, au choix (de l'utilisateur ou du dvp) , le laisser tel qu'il est, le supprimer et recréer des données qui tiendrons dans la place, en prévenant l'utilisateur, le supprimer...
[^] # Re: Hmmm ...
Posté par LaBienPensanceMaTuer . Évalué à 3.
En l'occurence, c'est définit comme tel dans le système:
[binarym@neotek]:/usr/include% grep -r ENOSPC *
asm-generic/errno-base.h:#define ENOSPC 28 /* No space left on device */
Et pour descendre plus bas dans la logique "que dois faire l'appli", et bien controler le code retour de l'appel system write(2) et, voyant la valeur de ce dernier (28) avertir l'utilisateur que l'espace disque est insuffisant pour sauver les modifications.
Donc l'utilisateur intelligent voyant l'erreur, libérera les 100k nécessaires à la sauvegarde de son fichier et réiterera sa modification ....
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
[^] # Re: Hmmm ...
Posté par briaeros007 . Évalué à 1.
Le démon diras "j'ai plus de place, annulation de la procédure en cours".
Et l'utilisateur concencieux regardera ses logs et verra "tiens faut que je libére de la place et relance ce processus".
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
Oui, il n'a que ça a faire, regarder ses logs, et se dire "tiens faut que je relance le processus".
Non, en pratique les fichiers seront écrits à moitié, et seule une boite de dialogue pourra prévenir l'utilisateur correctement.
En plus on s'éloigne du sujet de départ où l'autre faisait son caca nerveux à cause de l'utilisation du mot "tronquer".
[^] # Re: Hmmm ...
Posté par yellowiscool . Évalué à 3.
À part en ncurses ou autre, ça court pas les rues sous linux.
Moi j'aime bien le mail quand c'est important.
Envoyé depuis mon lapin.
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
[^] # Re: Hmmm ...
Posté par yellowiscool . Évalué à 3.
Puis franchement, quelle horreur ces boites de dialogues à propos d'erreurs incompréhensibles. Souvent, les gens finissent pas les fermer sans même plus les lire.
Envoyé depuis mon lapin.
[^] # Re: Hmmm ...
Posté par briaeros007 . Évalué à 1.
Tu parlais de daemon -et on a donc répondu dessus-, et maintenant tu parle de "boite de dialogue"....
a va bien?
Non, en pratique les fichiers seront écrits à moitié
Non, en pratique un sysadin un tant soit peu compétent à un truc qui lui permet de savoir quel est l'utilisation prise sur chaque disque, pour éviter justement que ça arrive!
Et regarde "régulièrement" ses logs.
Ensuite que pour le luser ça marche pas, peut être, mais c'est une tout autre question.
En plus on s'éloigne du sujet de départ où l'autre faisait son caca nerveux à cause de l'utilisation du mot "tronquer".
1°) au contraire j'ai l'impression qu'on est en plein dedans
2°) le problème c'est pas le mot tronquer, c'est dire que c'est le FS qui jouait sur les fichiers, alors qu'en réalité c'est l'application qui écrit le fichier qui le "tronque" (et ne le supprime pas ou autre).
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 2.
[^] # Re: Hmmm ...
Posté par LaBienPensanceMaTuer . Évalué à 2.
Connais tu vraiment la définition du mot tronquer ?
Pour information:
tronquer, verbe transitif
Sens Retrancher quelque chose, effectuer des suppressions. Synonyme raccourcir Anglais to shorten
Donc, j'insiste, jamais Ext3 ne va supprimer de lui meme des données.
Sache que si tu ajoutes des choses à un fichier de conf via un éditeur, tu ajoutes en réalité des choses au buffer de cet éditeur (mémoire, fichier temporaire).
Le fichier de configuration n'est modifié que lorsque tu sauvegardes ce dernier.
Si tu n'as pas d'espace disque à ce moment, tu te feras cordialement envoyer chier et basta.
Mais JAMAIS le système ne supprimera des données écrites de sa propre initiative.
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 1.
[^] # Re: Hmmm ...
Posté par Ph Husson (site web personnel) . Évalué à 3.
Heureusement qu'il en parle parce que sinon j'aurais vraiment cru que ext3 perdait des données (ce qui me choque assez fortement), alors que là c'est juste qu'il ne peut pas les enregistrer ...
[^] # Re: Hmmm ...
Posté par LaBienPensanceMaTuer . Évalué à 1.
Plus sérieusement, quand un mot représente à peu près 50% de l'énoncé du problème, il me semble justifier d'insister sur sa réelle signification quand l'emploi en est fantaisiste...
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 1.
[^] # Re: Hmmm ...
Posté par Ph Husson (site web personnel) . Évalué à 2.
[^] # Re: Hmmm ...
Posté par Octabrain . Évalué à 1.
[^] # Re: Hmmm ...
Posté par Ph Husson (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.