Observando quando um arquivo é criado na pasta de rede no linux

1

Eu estou tentando descobrir uma maneira de perceber quando um determinado arquivo é gravado na pasta de rede montada. Estou ciente de que é possível sondar continuamente a localização para ver se ela foi criada, mas isso é muito bom. Eu também estou ciente de que é possível usar o inotify, e seus derivados, como iwatch e inotify-tools, para procurar por sinalizadores de kernel. No entanto, é uma pasta de rede que os sinalizadores não são levantados na máquina onde a pasta está montada.

Então, eu queria saber se há outras maneiras de fazer isso. Eu estava pensando em usar filas de mensagens como o RabbutMQ. Verifique quando os arquivos são gravados e envie uma mensagem para uma fila, depois leia a mensagem na máquina montada e faça o que for necessário?

    
por Alex 22.10.2013 / 14:57

2 respostas

1

Se você não acha que o conjunto de ferramentas inotify é apropriado aqui, e você está usando o Linux, tente Monit e um teste de existência ou de sistema de arquivos no compartilhamento remoto.

 check file with path /nfs/appdata.txt
   if does exist then alert 

Talvez um exemplo mais limpo aqui . O nome do arquivo é conhecido ou não?

    
por 22.10.2013 / 15:17
0

Não há como um cliente ser notificado quando o diretório montado é alterado no servidor (bem, a especificação nfs v4.1 tem uma maneira de fazer isso, mas não há implementações fazendo isso). Você tem que pesquisar.

Se você puder executar aplicativos especiais no servidor, poderá usar algo como lsync e ter um manipulador personalizado para notificar o cliente com um mecanismo de sua escolha.

    
por 23.10.2013 / 12:37

Tags