ti-enxame.com

Melhor maneira de monitorar alterações no sistema de arquivos no linux

Estou pensando em criar um utilitário de sincronização de sistema de arquivos que monitore a atividade do sistema de arquivos, mas parece que alguns dos recursos de monitoramento do sistema de arquivos no kernel do linux estão obsoletos ou não são totalmente apresentados.

O que minha pesquisa foi encontrada

o dnotify veio primeiro com a notificação tem os recursos de notificação para excluir, modificar, acessar, atributos, criar, mover pode determinar o descritor de arquivo, mas agora está desatualizado pelo inotify e fanotify

o inotify saiu em segundo lugar com a notificação com os recursos de notificação de acesso, modificação, atribuição, fechamento, movimentação, exclusão, criação, etc. no entanto, não fornece um descritor ou processo de arquivo e será desatualizado pelo fanotify

fanotify é o mais recente que informa sobre acesso, modificação, fechamento, mas não informa sobre exclusão ou atributos, mas fornece descritor de arquivo

Preciso de uma maneira de determinar o processo (por exemplo, do fd) e coisas como excluir, modificar, atributos etc. para sincronizar tudo, alguma sugestão? Infelizmente, o dnotify parece o melhor, mas o mais desatualizado

22
ReDucTor

Você deve usar uma biblioteca em vez de inotify e amigos - algo como FAM ou Gamin (é a mesma API para ambos). Isso tornará seu programa portátil para outros Unixes.

8
cnicutar

Existe uma boa lib fornecendo descritores de arquivos ou processos com inotify . Ele possui sua própria API C e o utilitário inotifywatch (bom para scripts), tudo no pacote inotify-tools.

Eu discordo totalmente que o fanotify desatualizará o inotify.

FAM e gamin são muito boas opções de servidor/cliente. Ambos usam inotify como primeira opção sobre o dnotify e as pesquisas desatualizados. Eu prefiro gamin.

3
Henrique M A Costa

incron é uma ferramenta útil para operações como esta. Você pode criar um arquivo de configuração para o diretório ou arquivo que deseja assistir.

http://inotify.aiken.cz/?section=incron&page=about&lang=en

no ubuntu

Sudo apt-get install incron

/etc/incron.d/mynotification.conf

# notification for user creation
/home IN_ALL_EVENTS /opt/notify_user_created.sh $#
1
Fırat KÜÇÜK