2 votes

lsof montre le fichier croissant tmp marqué comme supprimé

J'ai un cron qui génère beaucoup (15GB) d'avertissements PHP et les écrit dans un fichier journal.

J'ai tué le processus et, comme mesure temporaire, j'ai arrêté de rediriger stderr vers stdout pour ne pas remplir mon espace de stockage.

Après le changement, j'ai continué à recevoir les mêmes avertissements "high IO" et le stockage du serveur augmentait temporairement puis revenait à sa taille précédente. Le fichier journal original était vide.

J'ai trouvé un fichier utilisant lsof -p <PID of cron> qui devenait de plus en plus grande à chaque seconde.

sh      25626 root   10u   REG  202,1 21280244045     773 /tmp/tmpfZ14vFH (deleted)

Ce fichier est marqué comme supprimé et je ne le trouve pas dans le répertoire /tmp.

Veuillez nous éclairer à ce sujet.

Le système d'exploitation écrit-il le stderr dans un fichier temporaire pendant l'exécution du processus ?

2voto

emmdee Points 1775

Vous devez effectuer un cycle (démarrage/arrêt) du processus qui détient l'identifiant du fichier.

Vérifiez avec ps -ef |grep 25626 comme point de départ pour trouver le processus qui le retient et, si possible, le recycler. Cela permettra de libérer l'identifiant du fichier et de libérer l'espace disque.

Je sais que vous avez déjà fait cela (trouvé que sh est le processus en question), mais voici la commande que je trouve dans mes notes (probablement trouvée sur stack exchange dans le passé) pour retrouver ces mystérieux fichiers supprimés : lsof | grep deleted | numfmt --field=7 --to=iec | head

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X