time
je skvělý příkaz, pokud chcete zjistit, kolik času procesoru daný příkaz zabere.
Hledám něco podobného, co umí vypsat soubory, ke kterým přistupuje program a jeho děti. Buď v reálném čase, nebo následně jako zpráva.
V současné době používám:
#!/bin/bash
strace -ff -e trace=file "[email protected]" 2>&1 | perl -ne 's/^[^"]+"(([^\"]|\[\"nt])*)".*/$1/ && print'
ale selže, pokud příkaz ke spuštění zahrnuje sudo
. Není příliš inteligentní (bylo by hezké, kdyby uměl pouze vypisovat existující soubory nebo soubory, které měly problémy s oprávněními, nebo je seskupovat do souborů, které se čte, a souborů, které se zapisují). Také strace
je pomalý, takže by bylo dobré s rychlejší volbou.
Přijatá odpověď:
Vzdal jsem to a nakódoval svůj vlastní nástroj. Abych citoval z jeho dokumentů:
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
Vydává pouze soubory, takže se nemusíte zabývat výstupem z strace
.
https://gitlab.com/ole.tange/tangetools/tree/master/tracefile