executando o script em horários específicos sem usar cron [duplicate]

1

Estou tentando executar um script de shell em ( #!/bin/sh no HP-UX) em horas exatas (hh: mm: ss) hh: 05: 00 .. hh: 10: 00 .. hh: 15: 00 .. hh: 20: 00 .. hh: 25: 00 e assim por diante. Entendo que isso poderia ser feito usando cron , mas estou procurando outra maneira de fazer isso.

Adicionando: watch / repeat não são suportados

    
por soulseeker 14.01.2015 / 16:39

1 resposta

0

Você pode fazer isso:

sleep $(($(date --date="14-JAN-2015 17:00" +%s) - $(date +%s)))
run command ...

onde 14-JAN-2015 17:00 é a data e a hora que você quer esperar até.

Para executar a cada cinco minutos, você pode considerar que os segundos retornados por date serão um múltiplo de 300 em limites de 5 minutos, portanto, calculará a diferença entre agora e o próximo limite de cinco minutos (retornando entre 0 e 299):

timeNow=$(date +%s)
sleepTime=$(( ( ( $timeNow + 299) / 300 * 300 ) - $timeNow ))
sleep $sleepTime

Se date +%s não estiver disponível, tente:

timeNow=$(awk 'END { print systime() }' /dev/null)

Adicionando: também trabalhei com:

perl -e 'print time(), "\n" '
    
por 14.01.2015 / 16:55