Sei que essa é uma pergunta antiga, mas vou sugerir outra abordagem, caso alguém ache útil. Originalmente, eu postei isso como resposta a uma pergunta que foi enganada para esta.
Uma opção é usar sysdig
: um aplicativo de monitoramento de sistema de código aberto. Utilizando-o, você pode monitorar a atividade em um arquivo por nome. Suponha que você desejasse ver qual processo estava criando um arquivo chamado /tmp/example.txt
:
# sysdig fd.name=/tmp/example.txt
567335 16:18:39.654437223 0 touch (5470) < openat fd=3(<f>/tmp/example.txt) dirfd=-100(AT_FDCWD) name=/tmp/example.txt flags=70(O_NONBLOCK|O_CREAT|O_WRONLY) mode=0666
567336 16:18:39.654438248 0 touch (5470) > dup fd=3(<f>/tmp/example.txt)
567337 16:18:39.654438592 0 touch (5470) < dup res=0(<f>/tmp/example.txt)
567338 16:18:39.654439629 0 touch (5470) > close fd=3(<f>/tmp/example.txt)
567339 16:18:39.654439764 0 touch (5470) < close res=0
567342 16:18:39.654441958 0 touch (5470) > close fd=0(<f>/tmp/example.txt)
567343 16:18:39.654442111 0 touch (5470) < close res=0
A partir dessa saída, você pode ver que um processo chamado touch
pid 5470 abriu o arquivo.
Se você quiser obter mais informações, poderá executar no "modo de captura" onde um rastreamento de chamada do sistema é coletado:
# sysdig -w /tmp/dumpfile.scap
Aguarde a criação do arquivo, pare sysdig
e execute:
# csysdig -r /tmp/dumpfile.scap
Isso permitirá que você explore tudo o que aconteceu. Você pode pressionar <F2>
e selecionar Files
, pressione <F4>
para procurar o nome do arquivo e, em seguida, pressione <F6>
para "dig" (que mostrará uma saída semelhante ao comando acima). Com isso, você pode usar a mesma abordagem para encontrar informações sobre o processo que realmente criou o arquivo.
Existe uma versão GUI do csysdig
chamado sysdig-inspect
, se é mais a sua xícara de chá.