Como executar um script assim que o computador estiver ativo em um determinado intervalo de tempo e apenas uma vez?

0

Eu preciso executar um script entre algumas horas de um determinado dia da semana, assim que a máquina é ligada. Por exemplo: toda segunda-feira, entre as 07:00 e as 10:00.

Eu sei como lidar com as condições de tempo "entre algumas horas de um determinado dia da semana" e "assim que a máquina é ligada", independentemente das tarefas do cron. No entanto, não encontrei até agora uma solução elegante para combinar os dois.

Eu exploro a opção para executar no final do intervalo de tempo (mas não o que eu quero).

Eu também vi a opção do Anacron: nesta questão anteriormente pedida mas a granularidade do anacron não é boa o suficiente.

Como eu poderia implementar esse pseudo-periódico? Eu poderia combinar um cron job @reboot mais um script?

Obrigado!

    
por Uncle Ben Ben 22.03.2018 / 16:48

1 resposta

2

Parece que você deseja um trabalho @reboot .

O script pode verificar o dia da semana e a hora do dia:

#!/bin/sh

day=$( date +%u ) # day of week as integer, 1 == Monday
tm=$( date +$k )  # time of day, 0-23

if [ "$day" -ne 1 ] || [ "$tm" -lt 7 ] || [ "$tm" -gt 10 ]; then
    # wrong day and/or time
    exit
fi

# do stuff here
    
por 22.03.2018 / 16:54