abertura de rastreio em um determinado arquivo

3

Eu sei como strace um certo programa para ver todos os arquivos que ele lê. Eu sei como ver quais processos estão usando um determinado arquivo no momento.

Mas existe uma maneira de registrar todas as aberturas de arquivos. Eu quero algo como tail -f some/log/file , mas lsof -f /file/someone/might/open/soon , que imprime informações toda vez que algo abre esse arquivo.

Obrigado

    
por lard farnwell 09.08.2012 / 14:29

2 respostas

2

Isso pode ser feito com um sistema de auditoria. Você não especificou o seu sistema operacional, eu assumo o Linux. Verifique o link e as páginas See also na parte inferior.

    
por 09.08.2012 / 14:47
1

Você poderia usar inotify para executar o lsof quando o arquivo for acessado. Por exemplo, no incrontab:

/etc/passwd IN_ACCESS /tmp/lsof.sh $@

O Incrontab não parece usar o shell, portanto redirecionamentos não podem ser usados. Um wrapper pode ser usado em vez disso:

lsof -f -- $1 >> /tmp/lsof.log
    
por 09.08.2012 / 15:09

Tags