Execute e pare um comando de monitoramento como sudo por s segundos a cada m minutos

2

Eu quero correr sudo airodump-ng -w myfile a cada dez minutos ou mais, por m minutos. Não importa se o tempo de execução muda (que, se ele for executado m minutos mais tarde a cada vez).

Observe que este é um programa de monitoramento, que não irá apenas produzir e sair. Suponho que a solução para essa pergunta também seja válida para programas de monitoramento semelhantes.

Eu estava pensando em colocar algo como:

*/10 * * * * airodump-ng mon0 -w myfile

em crontab . Não há necessidade de alterar o nome do myfile, o airodump pode verificar corretamente se o myfile existe e criar um myfile-02 e assim por diante.

No entanto, como devo pará-lo em execução após s segundos? pkill airodump é a única coisa em que consigo pensar. Este é o melhor para executá-lo 1 minuto duas vezes por hora?

20,40 * * * * airodump-ng mon0 -w myfile

21,41 * * * * pkill airodump-ng

    
por Quora Feans 22.09.2015 / 19:14

2 respostas

4

Não use pkill . Em vez disso, execute seu aplicativo no comando timeout do pacote coreutils:

*/10 * * * * timeout 5m airodump-ng mon0 -w myfile

(Onde aqui 5m significa executar por 5 minutos.) Use --signal se precisar de algo diferente de TERM .

    
por 22.09.2015 / 19:53
0
NEXT_WAIT_TIME=0
until command || [ $NEXT_WAIT_TIME -eq 4 ]; do
   sleep $(( NEXT_WAIT_TIME++ ))
done

ou como um revestimento

NEXT_WAIT_TIME=0; until command || [ $NEXT_WAIT_TIME -q 4 ]; do sleep $(( NEXT_WAIT_TIME++ )); done

fonte: link

    
por 22.09.2015 / 19:44