Monitorar o arquivo para mudanças e agir imediatamente sobre a mudança

1

Como posso constantemente monitorar (pequeno) arquivo para alterações?

quando o arquivo é atualizado (ação do aplicativo da web), um script é executado (se ainda não estiver em execução).

Agora, faço isso a cada minuto usando o cron, mas isso demora até um minuto. Eu gostaria de tomar a ação imediatamente após o arquivo ser alterado.

Talvez eu precise escrever algum processo de baixo nível sendo executado em segundo plano, uma vez que o servidor é iniciado?

O motivo pelo qual quero fazer isso é separar o aplicativo da Web das ações raiz (executadas sob demanda, uma vez quando o arquivo é atualizado).

    
por takeshin 07.04.2015 / 13:28

3 respostas

2

incrond (inonify cron daemon) se comporta como o cron, mas usa inotify como o mecanismo de trigger. Este guia tem alguns exemplos bastante abrangentes.

Um exemplo de entrada de incron para o caso que você descreveu pode ser:

/path/to/file IN_CLOSE_WRITE /path/to/your_script
    
por 07.04.2015 / 15:11
1

incron é o software que você está procurando.

    
por 07.04.2015 / 15:11
0

Se você estiver executando o Linux, como presumo que seja, então você pode confiar no mecanismo inotify do Linux que notifica os processos de espaço do usuário quando os arquivos são alterados.

LSyncd é um programa construído em torno desse recurso, que você pode configurar para executar comandos arbitrários quando os arquivos mudam.

    
por 07.04.2015 / 14:35