Brendan Gregg tem um bom número de
dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
Expandindo isso, você pode assistir a um determinado arquivo sendo aberto, adicionando um predicado:
dtrace -n 'syscall::open*:entry /copyinstr(arg0)=="/etc/passwd"/ { printf("%s %s",execname,copyinstr(arg0)); }'
Gerando a seguinte saída:
CPU ID FUNCTION:NAME
2 12622 open64:entry cat /etc/passwd
ls
é um pouco diferente, em que ls file
não abre file
. Ele usa stat
(especificamente, lstat64
) para que o probe seja syscall::*stat*:entry
.
Observe que as implementações de dtrace
variam. Os comandos acima foram executados em illumos. YMMV.