Estou tentando depurar um aplicativo no Ubuntu - preciso ouvir tentativas de abertura de arquivo (mesmo para arquivos que não existem).
O Process Monitor (anteriormente conhecido como FileMon ) está disponível no Windows - o que há no cinto de utilitários do Ubuntu?
Obrigado!
Ashley
Depende do que você quer:
No geral, você deseja examinar o inotify para ver todos os acessos a arquivos que qualquer processo faz.
No pequeno, o strace permitirá observar os syscalls de um processo específico. Strace é incrível. Você pode rastrear as chamadas de um processo para 'abrir'
strace -f -eopen $cmd
, por exemplo. A página do manual tem detalhes completos sobre sintaxe, é claro.fonte
strace
na frente de um aplicativo inicial, é bom observar o que o aplicativo está fazendo.lsof
é bom ver quais arquivos um aplicativo já está executando.BTW:
lsof -ni:22
mostra qual processo está usando a porta 22.fonte
A SGI possui uma ferramenta que você pode querer experimentar: http://oss.sgi.com/projects/fam/
fonte
Aqui está um exemplo do uso do strace para rastrear alterações no arquivo:
strace -f -e trace=file -p7546 -o /tmp/outputfile
-f
garante que os eventos dos processos filhos sejam capturados.-e trace=file
diz que devemos capturar syscalls relacionadas a arquivos (por exemplostat
,open
,futex
etc.)-p
é o ID do processo (recuperados deps -aux
ou outros meios)-o
especificou o outputfile (pode haver um monte de dados e você poderia passar a usar grep como um filtro.fonte
Tente sysdig . Por exemplo:
fonte
Isso pede ajuda de Mortadelo. http://gitorious.org/mortadelo
fonte
Isso é antigo, mas acho que é uma boa ideia atualizá-lo para a realidade de hoje.
Para depurar apenas um processo e seus filhos, o strace ainda é o melhor caminho. Ele pode mostrar facilmente todo o acesso a arquivos, mesmo em arquivos ausentes.
Para depuração genérica do sistema, o recurso de auditoria no kernel pode fazer isso e é o caminho recomendado. Ele não precisa de nenhum patch nos kernels recentes, apenas a auditoria instalada
Aqui está um guia simples para usá-lo:
audit-gui
Isso replica o arquivo de janelas do Windows, monitorando o acesso ao arquivo para todos os locais, processos, etc.
verifique também este post
fonte
Isto é o que funcionou bem para mim (Linux Mint 19.1):
sudo lsof 2>&1 | grep programnamehere
Não sei por que
2>&1
era necessário, mas não filtrava, a menos que eu o usasse.fonte