Necessita de uma tarefa cron que seja executada a cada 182 minutos

1

Atualmente executando o Linux Mint 18.1; O mais próximo que eu posso chegar do resultado desejado é um kludge feio onde eu configurei o cron para 0 */4 * * * ck-cp com o script chamado "ck-cp" contendo um comando sleep por 90 segundos antes de executar o comando que faz a verificação real. Devido à natureza do trabalho, ele trabalha cerca de 85% do tempo, falhando os outros 15%.

No Windows, por incrível que pareça, é facilmente realizado. Você simplesmente diz ao Agendador de Tarefas para executar o trabalho a cada 182 minutos. Funciona 100% do tempo.

Eu acho essa diferença de comportamento curiosa, especialmente porque o * nix é muito mais antigo que o Windows e geralmente mais confiável. Alguém tem alguma idéia de como fazer o cron fazer isso? (E o acima é o melhor que eu encontrei até agora ...)

    
por Raymond Danner 28.12.2016 / 20:26

1 resposta

5

Você pode fazer isso agendando seu script para rodar a cada minuto usando o cron e, em seguida, salvando quando o tempo desde a época não se modifica para 0.

#!/bin/bash

minutesSinceEpoch=$(($(date +'%s / 60')))

if [[ $(($minutesSinceEpoch % 182)) -ne 0 ]]; then
    exit 0
fi

# ... your stuff here...
    
por 28.12.2016 / 20:36