• [^] # Re: lsof ?

    Posté par . En réponse au message espace disque qui est grignoté. Évalué à 10.

    Je ne comprend pas bien le rapport avec le fichier effacé mais pas ferm**É**.

    C'est un grand classique de l'administration système qui te donne l'impression d'avoir de la « matière noire » sur ton disque dur. Lorsque tu effaces un fichier, celui-ci n'est réellement retiré du disque que lorsque plus aucun lien dur ne le référence ET lorsque plus aucun processus en cours d'exécution ne possède un handle ouvert le concernant. Si une de ces deux conditions n'est pas remplie, il continue d'exister tout-à-fait normalement et son i-node est toujours valide. Le système de fichiers fait automatiquement le ménage quand elles le deviennent. Créer un nouveau fichier portant le même nom n'a alors aucune incidence : son i-node sera différent et il s'agira bien d'un fichier distinct.

    Heureusement que ça fonctionne ainsi d'ailleurs, sinon détruire un fichier suffirait à faire planter un processus. C'est aussi ce qui te permet de mettre tes bibliothèques à jour sans avoir à passer en mode dégradé : les processus existants continuent leur tâche comme si de rien était et tout nouveau processus lancé après la mise à jour référence le nouveau fichier.

    Il arrive souvent que des processus qui tiennent un log deviennent fous et entrent dans une boucle infinie dans laquelle ils écrivent sans relâche la même ligne. Donc, le log grossit jusqu'à occuper tout l'espace. Quand on est tout d'un coup confronté à ça, le réflexe humain est de faire un find pour trouver les plus gros fichiers et quand on voit que le responsable est un seul gros fichier de log qu'on lit une fois l'an, on l'élimine en général aussi sec. Et là, « c'est le drame ». :-) Le fichier a bien disparu mais l'espace n'est pas libéré. Pire, il continue à fuir. Là, en principe, une partie substantielle de la communauté des admins envisagent une réinstallation complète, voire une cyber-attaque terroriste en provenance des antipodes.

    En gros ma question c'est surtout comment on évite de se trouver dans des situations comme celle-là.

    Il suffit de terminer le ou les processus qui tiennent ce fichier ouvert, tout simplement. Voire même, lorsque c'est possible, leur demander gentiment de le refermer. Et là, miracle. On récupère d'un coup une quantité d'espace que même le BOFH n'aurait jamais osé annoncer.