GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Comando fatrace: cómo saber en tiempo real qué procesos escriben en un fichero

No hay comentarios

Normalmente es fácil saber cuál es el proceso o procesos que están escribiendo sobre un fichero dado en Linux, ya que o bien conocemos previamente su origen, por ejemplo el access_log de Apache, o bien podemos hallarlo fácilmente con los comandos fuser o lsof. Sin embargo, a veces nos ocurrirá que aunque conozcamos el origen o el cometido de un fichero, son tantas las aplicaciones que pueden estar haciendo uso de él simultáneamente, que es muy difícil saber cuál de ellas es la que más escribe o la que lo está haciendo en un momento determinado, lo cual nos resultaría muy útil para saber por ejemplo por qué un fichero de log está creciendo desmesuradamente o qué aplicación está haciendo un uso abusivo de nuestro sistema, ya sea por un fallo o de forma intencionada.

Para conocer esta información disponemos en Linux del comando fatrace, que muestra todos los eventos de acceso a ficheros que se producen en todo el sistema, aportándonos información sobre el nombre y el PID del proceso responsable de dicho evento, en qué fichero se ha producido el evento, y el tipo de evento, es decir, si se trata de una apertura, lectura, escritura o cierre de dicho fichero.

Normalmente este comando no estará presente en nuestro sistema, pero podremos instalarlo desde los repositorios habituales de nuestra distribución:

– Debian / Ubuntu:

$ sudo apt-get install fatrace

– Centos / Fedora / Red Hat:

$ sudo yum install -y fatrace

Así, para ver qué procesos escriben sobre un fichero en tiempo real, ejecutaremos el comando así:

$ sudo fatrace -f W | grep .xsession-errors
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors 
konsole(13009): W /home/daniloaz/.xsession-errors

En el ejemplo podemos ver como el comando fatrace muestra líneas que se repiten cientos de veces cada vez que hacemos un gesto con el ratón, lo cual nos está indicando claramente que el proceso konsole con PID 13009 tiene algún tipo de fallo que está provocando que se escriba desmesuradamente sobre el fichero .xsession-errors, que era nuestro objetivo inicial.



 

Sobre el autor

Daniel López Azaña
Arquitecto de soluciones Cloud AWS & Linux Sysadmin Freelance

Emprendedor, generador de ideas y mente inquieta. Apasionado de las nuevas tecnologías, especialmente de los sistemas Linux y del software libre. Me gusta escribir además sobre actualidad tecnológica, Cloud Computing, AWSi, DevOps, DevSecOps, seguridad, desarrollo web y programación, SEO, ciencia, innovación, emprendimiento, etc.

DanielComando fatrace: cómo saber en tiempo real qué procesos escriben en un fichero

Artículos relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada.