GNU/Linux >> Linux Esercitazione >  >> Linux

Elencare i file a cui si accede da un programma?

time è un comando brillante se vuoi capire quanto tempo di CPU impiega un determinato comando.

Sto cercando qualcosa di simile in grado di elencare i file a cui accede un programma e i suoi figli. O in tempo reale o come report successivo.

Attualmente uso:

#!/bin/bash

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

ma fallisce se il comando da eseguire coinvolge sudo . Non è molto intelligente (sarebbe bello se potesse elencare solo i file esistenti o che hanno avuto problemi di autorizzazione o raggrupparli in file che vengono letti e file che vengono scritti). Anche strace è lento, quindi sarebbe utile con una scelta più veloce.

Risposta accettata:

Ho rinunciato e codificato il mio strumento. Per citare dai suoi documenti:

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

Produce solo i file, quindi non è necessario gestire l'output da strace .

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


Linux
  1. Elencare i file ordinati numericamente?

  2. Il Bash '?

  3. Chiusura dell'output standard (>&-)?

  4. Linux – Partecipare alla mailing list del kernel?

  5. Come personalizzare il completamento automatico di Bash per elencare i file in un'altra directory?

Copia i file nel terminale Linux

Sposta i file nel terminale Linux

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come elencare i membri di un gruppo in Linux

Definizione della variabile TEXINPUTS

È possibile elencare i file memorizzati nella cache?