Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Gérer les fichiers fantômes ====== <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/09/09 16:30// ===== Définition ===== Il peux arriver lors de la suppression d'un fichier, manuellement ou via un process comme ''logrotate'', que l'espace occupé ne soit pas libéré. Pire, il peut arriver, pour les logs notamment, que le flux de données, écrit auparavant dans le fichier supprimé, ne soit pas écrit dans le fichier de remplacement. On parle dans ce cas de fichier fantôme. Le fichier est supprimé de la table des matière mais toujours présent en mémoire et verrouillé par un processus. ===== Commandes utiles ===== * Afficher les fichiers fantômes (qui apparaitront alors avec la mention ''(deleted)''). Cette commande donne aussi le PID (//**P**rocessus **ID**entifier//) du processus qui verrouille le fichier et le FD (//**F**ile **D**escriptor//) du fichier : <sxh bash>lsof +L1</sxh> * Récupérer le contenu d'un fichier fantôme (en ayant récupérer au préalable son PID et son FD) : <sxh bash>cp /proc/<PID>/fd/<FD> /tmp/recovered_file</sxh> * Arrêter le processus qui verrouille le fichier et ainsi supprimer définitivement le fichier et libérer l'espace disque : <sxh bash>kill -9 <PID></sxh> * Copier automatiquement les modifications apportées au fichier fantôme dans un autre fichier (pratique pour les logs si le processus ne peut pas être arrêter) : <sxh bash>tail -c +0 -f /proc/<PID>/fd/<FD> > /new/path/to/file &</sxh> * Libérer l'espace sans arrêter le processus : <sxh bash>echo > /proc/<PID>/fd/<FD></sxh> ~~DISCUSSION~~ lsof.txt Dernière modification : 2021/03/05 15:32de nekan