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.


Error: Your Requested widget " ai_widget-6" is not in the widget list.
  • [do_widget_area above-nav-left]
    • [do_widget_area above-nav-right]
      • [do_widget_area footer-1]
        • [do_widget id="wpp-4"]
      • [do_widget_area footer-2]
        • [do_widget id="recent-posts-4"]
      • [do_widget_area footer-3]
        • [do_widget id="recent-comments-3"]
      • [do_widget_area footer-4]
        • [do_widget id="archives-4"]
      • [do_widget_area logo-bar]
        • [do_widget id="oxywidgetwpml-3"]
      • [do_widget_area menu-bar]
        • [do_widget id="search-3"]
      • [do_widget_area sidebar]
        • [do_widget id="search-4"]
        • [do_widget id="ai_widget-2"]
        • [do_widget id="categories-5"]
        • [do_widget id="ai_widget-3"]
        • [do_widget id="ai_widget-4"]
        • [do_widget id="ai_widget-5"]
      • [do_widget_area sub-footer-1]
        • [do_widget id="text-4"]
      • [do_widget_area sub-footer-2]
        • [do_widget_area sub-footer-3]
          • [do_widget_area sub-footer-4]
            • [do_widget_area upper-footer-1]
              • [do_widget id="search-2"]
              • [do_widget id="recent-posts-2"]
              • [do_widget id="recent-comments-2"]
              • [do_widget id="archives-2"]
              • [do_widget id="categories-2"]
              • [do_widget id="meta-2"]
            • [do_widget_area upper-footer-2]
              • [do_widget_area upper-footer-3]
                • [do_widget_area upper-footer-4]
                  • [do_widget_area widgets_for_shortcodes]
                    • [do_widget id="search-5"]
                    • [do_widget id="ai_widget-6"]
                  • [do_widget_area wp_inactive_widgets]
                    • [do_widget id="wpp-2"]
                    • [do_widget id="text-1"]
                    • [do_widget id="recent-posts-3"]
                    • [do_widget id="categories-3"]
                    • [do_widget id="archives-3"]
                    • [do_widget id="icl_lang_sel_widget-3"]

                  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.