GNU/Linux >> Tutoriales Linux >  >> Linux

Listar los archivos a los que accede un programa?

time es un comando brillante si desea averiguar cuánto tiempo de CPU requiere un comando dado.

Estoy buscando algo similar que pueda enumerar los archivos a los que accede un programa y sus hijos. Ya sea en tiempo real o como informe posterior.

Actualmente uso:

#!/bin/bash

strace -ff -e trace=file "[email protected]" 2>&1 | perl -ne 's/^[^"]+"(([^\"]|\[\"nt])*)".*/$1/ && print'

pero falla si el comando a ejecutar involucra sudo . No es muy inteligente (sería bueno si solo pudiera enumerar los archivos existentes o que tienen problemas de permisos o agruparlos en archivos que se leen y archivos que se escriben). También strace es lento, por lo que sería bueno con una opción más rápida.

Respuesta aceptada:

Me rendí y codifiqué mi propia herramienta. Para citar de sus documentos:

SYNOPSIS
    tracefile [-adefnu] command
    tracefile [-adefnu] -p pid

OPTIONS
    -a        List all files
    -d        List only dirs
    -e        List only existing files
    -f        List only files
    -n        List only non-existing files
    -p pid    Trace process id
    -u        List only files once

Solo genera los archivos, por lo que no necesita lidiar con la salida de strace .

https://gitlab.com/ole.tange/tangetools/tree/master/tracefile


Linux
  1. Linux:¿participa en la lista de correo del kernel?

  2. ¿Qué comando se usa para ordenar la lista de archivos/carpetas por tiempo?

  3. Comando ls de Linux - Lista de archivos

  4. ¿Cómo puedo enumerar los archivos en un archivo zip sin descomprimirlo?

  5. Excluir la lista de archivos de la búsqueda

Cómo encontrar recursivamente y enumerar los archivos por fecha en Linux

Cómo enumerar los miembros de un grupo en Linux

nm :Comando para listar los símbolos en archivos de objetos.

¿Cómo puedo enumerar (ls) los 5 últimos archivos modificados en un directorio?

Cómo enumerar el árbol de dispositivos del núcleo

Definición de la variable TEXINPUTS