Como registrar todos os eventos realizados no diretório?

12

Como posso registrar todos os eventos realizados em um diretório específico?

Quero registrar a entrada de cada diretório modificado dentro de um período de tempo. Eu estou usando o find . -type d -mmin -5comando

Além disso, quero colocar mais detalhes, quando qualquer diretório é movido para outro local, preciso adicionar os detalhes do log abaixo, por exemplo,

O diretório "xyz" foi movido de "home / usr / xyz" => para "home / usr / documents / xyz"
Ghanshyam Rathod
fonte

Respostas:

9

Se estiver usando Linux, você deve tentar o inotifywaitcomando, ele foi projetado para escutar eventos em arquivos ou diretórios.

inotifywait -m -r /dir

Você pode usar um whileloop para filtrar a saída.

Além disso, é muito leve: não é necessário a poll()cada N segundos, é toda a mágica.

Consulte http://inotify-tools.sourceforge.net/

Gilles Quenot
fonte
Doc do projeto de URL adicionado.
Gilles Quenot
inotifyé específico do Linux, mas a pergunta não está marcada como Linux. Boas soluções serão específicas do SO, como esta.
Jordanm #