Como monitorar programas que gravam em arquivos específicos?

0

Estou curioso em saber como posso mostrar / monitorar os arquivos que um programa está gravando por meio da linha de comando? Eu entendo que certos processos dependem de certos arquivos para funcionar, mas como eu sei quais arquivos esses processos usam. Vamos dizer que eu quero ver quais arquivos o serviço de resolução dns grava, eu sei que a resposta é /etc/resolv.conf mas como posso verificar isso?

    
por jamieg 14.03.2017 / 10:18

2 respostas

1

O comando lsof lista arquivos abertos por processo. O número de arquivos abertos a qualquer momento será enorme, então você quer ser um pouco específico.

  • Se você souber o ID do processo, faça sudo lsof -p <pid> .

  • Se você conhece um diretório em que os arquivos estão localizados, faça sudo lsof +D <directory> .

Existem muitas outras opções. Veja man lsof . Sem sudo, você só pode ver arquivos abertos por processos que você mesmo possui.

    
por Jos 14.03.2017 / 10:40
0

Você pode usar strace para monitorar todas as chamadas de sistema feitas por um processo, incluindo a abertura de arquivos para leitura e gravação.

strace processa muita saída. Você pode grep a saída para open para rever apenas as chamadas para open files .

Veja man strace para detalhes. Observe que é uma opção -f , se você precisar rastrear um processo que bifurque.

    
por Mark Stosberg 14.03.2017 / 16:32