Cron job por 7 dias sozinho não seguido por várias semanas

0

Eu preciso executar um cronjob para ser executado apenas uma vez por 7 dias. Eu tentei assim:

 0 0 * * 0-6  myscript.sh

Ele funciona uma vez por dia e funciona todos os dias da semana desde que eu dei 0-6.

Mas preciso executar um trabalho apenas por uma semana, não seguido por vários dias. Não quero mencionar a data do mês, já que preciso que ele seja executado várias vezes.

(ou)

Usando o tempo de comando especial no cron, eu uso a opção @daily sozinha

Como posso definir o trabalho para ser executado por 7 dias sozinho?

    
por user190660 19.09.2016 / 09:57

1 resposta

3

Você não pode fazer isso com cron . No entanto, você pode fazer isso com at . Consulte man at para mais detalhes. Aqui está um exemplo de script para enviar a tarefa myscript.sh para os próximos sete dias, sendo executada à meia-noite:

for n in {1..7}
do
    echo 'myscript.sh' | at midnight + $n days
done

Você pode listar os trabalhos enviados com atq :

atq | sort -n
3       Tue Sep 20 00:00:00 2016 a roaima
4       Wed Sep 21 00:00:00 2016 a roaima
5       Thu Sep 22 00:00:00 2016 a roaima
6       Fri Sep 23 00:00:00 2016 a roaima
7       Sat Sep 24 00:00:00 2016 a roaima
8       Sun Sep 25 00:00:00 2016 a roaima
9       Mon Sep 26 00:00:00 2016 a roaima

Cada trabalho será executado com precisão uma vez na data e hora especificadas e será excluído da fila.

Se você precisar remover um trabalho antes de iniciar, o comando atrm fará isso. Por exemplo,

atrm 3
    
por 19.09.2016 / 11:18