Como posso descobrir quais programas modificaram um arquivo durante algum período de tempo?

6

Gostaria de entender melhor quais programas estão modificando um arquivo específico 1 durante a reinicialização. Posso configurar algo para registrar esse tipo de informação?

A pesquisa de quais processos atualmente abrem o arquivo não funcionará, pois o arquivo pode estar aberto por apenas alguns milissegundos.

O rastreamento do kernel pode ser usado para coletar essas informações?

1 /var/lib/alsa/asound.state se você está curioso, mas estou interessado em uma solução geral.

    
por ændrük 02.02.2011 / 19:41

1 resposta

2

Isso pode ser obtido com a ferramenta fuser . Ele lista o ID do processo de todos os processos que acessam um arquivo específico. Experimente,

fuser -u .

... para ver quais arquivos estão "abertos" no seu diretório pessoal, o ID do processo envolvido e o nome de usuário que possui esses processos.

No seu caso, não tenho certeza se isso será útil, já que você está tentando monitorar uma reinicialização. Eu suspeito que rc.local irá executar muito tarde na reinicialização para capturar qualquer coisa útil com, digamos,

watch -n 0.5 "fuser -u /var/lib/alsa/asound.state"

Hmm - Eu apenas tentei descarregar isso em um arquivo e a saída não é muito bonita. Mas se isso puder ser resolvido, então talvez algo possa ser alcançado com o cron?

    
por Scaine 02.02.2011 / 19:56