como fazer pyinotify para executar um programa em qualquer modificação em um arquivo?

1

Eu tenho que prestar atenção para qualquer entrada dada ou qualquer alteração feita no conteúdo presente sobre um arquivo, após qualquer modificação eu preciso executar um programa python que está localizado na mesma pasta.

Eu tentei o meu melhor para entender, mas não sou capaz de obter nenhum bom resultado. Seria de grande ajuda, se alguém puder me ajudar com isso.

    
por Bhuvan raj 13.05.2011 / 21:43

1 resposta

2

Você pode fazer uma de duas coisas.

  • Você pode escrever um programa que conecte-se diretamente à API inotify e reaja a eventos de alteração. Este é provavelmente o mais elegante, mas fora do escopo do ServerFault.
  • Você pode usar inotifywait (parte de inotify-tools ) para monitorar um arquivo e disparar um script sempre que algo acontecer.

Para inotifywait, você desejaria configurar um script de shell (no init.d, provavelmente) para fazer algo ao longo destas linhas:

#!/bin/sh
while inotifywait -e modify /path/to/file
do
   /path/to/reaction_script.py
done

NÃO use a opção -m quando estiver chamando inotifywait em uma condição como essa; Não vai funcionar.

    
por 13.05.2011 / 21:56