O comando lsof (já mencionado em várias respostas) informa o processo um arquivo aberto no momento em que você o executa. lsof
está disponível para praticamente todas as variantes do unix.
lsof /path/to/file
lsof
não informa sobre arquivos que foram abertos há dois microssegundos e fechados há um microssegundo. Se você precisar assistir a um arquivo em particular e reagir quando for acessado, precisará de ferramentas diferentes.
Se você puder planejar um pouco com antecedência, poderá colocar o arquivo em um LoggedFS . LoggedFS é um FUSE sistema de arquivos empilhados que registra todos os acessos aos arquivos em uma hierarquia. Os parâmetros de registro são altamente configuráveis. O FUSE está disponível em todos os principais unices . Você desejará registrar os acessos no diretório onde o arquivo é criado. Comece com o arquivo de configuração de amostra fornecido e ajuste-o de acordo com este guia .
loggedfs -l /path/to/log_file -c /path/to/config.xml /path/to/directory
tail -f /path/to/log_file
Muitos unices oferecem outros recursos de monitoramento. No Linux, você pode usar o relativamente novo subsistema de auditoria . Não há muita literatura sobre isso (mas mais do que sobre logsfs); você pode começar com este tutorial ou um poucos examples ou apenas com o auditctl
man page . Aqui, deve ser o suficiente para garantir que o daemon seja iniciado e, em seguida, execute auditctl
:
auditctl -w /path/to/file
(acho que sistemas mais antigos precisam de auditctl -a exit,always -w /path/to/file
) e assistem aos registros em /var/log/audit/audit.log
.