Como executar automaticamente um arquivo de script quando um arquivo é salvo?

3

Estou editando um projeto no servidor linux. Eu tenho que executar um script de shell toda vez que eu mudo a fonte. Existe uma maneira de vincular a ação de salvar ao arquivo de script. Portanto, não preciso executar manualmente o script quando altero a fonte.

assim como o commit do git pode enganchar um * .sh. Eu quero usar o zend studio para editar o arquivo no servidor e quando eu salvar o arquivo.ele pode acionar o script desejado em execução.

    
por さむらい 07.01.2015 / 12:57

2 respostas

11

Use inotify na forma de inotify-tools e execute um script no servidor contendo algo assim:

#!/bin/bash
while true 
do 
    inotifywait -e modify /path/to/watched_file.txt && /bin/bash /path/to/your-script.sh
done

Isso executará o script sempre que o arquivo tiver sido gravado, mas pode ser que a lista -e tenha sido adaptada para o seu caso, consulte man inotifywait .

Alternativa: Apenas use um git hook.

    
por 07.01.2015 / 13:16
0

Acho incron muito útil para coisas como esta. Ele funciona de forma análoga ao cron - você tem tabelas de usuário e de sistema e ações que são acionadas em eventos listados nessas tabelas. Dessa forma, você não precisa ter um script construído para sempre para cada observador.

Observe que, embora o projeto não seja extinto, também não é muito ativo, portanto, não espere muitos recursos novos. Também não é muito difundido, então eu não ficaria surpreso se tivesse algumas falhas de segurança - eu não disponibilizaria as tabelas incron por usuário em um servidor multiusuário crítico e de alto perfil.

    
por 07.01.2015 / 14:44

Tags