Exemplo: um job que é executado por hora, até que "seg fev 4 08:30:00 UTC 2019" (timestamp do Unix 1549269000) seja exibido
@hourly [ "$( date +\%s )" -lt 1549269000 ] && /path/to/my-script.sh
O trabalho ainda seria tecnicamente executado , mas não executaria o script após o registro de data e hora especificado.
Da mesma forma, um trabalho que é executado apenas cinco vezes por hora:
@hourly ( f="$HOME/job.count";c=0;[ -f "$f" ] && read c <"$f"; echo "$(( c + 1 ))" >"$f"; [ "$c" -lt 5 ] ) && /path/to/my-script.sh
O trabalho acima, embelezado:
(
f="$HOME/job.count"
c=0
[ -f "$f" ] && read c <"$f"
echo "$(( c + 1 ))" >"$f"
[ "$c" -lt 5 ]
) && /path/to/my-script.sh
Isso usa um arquivo de estado, $HOME/job.state
, para armazenar o número de vezes que o trabalho foi executado. Se o arquivo existir, o número nele será lido em c
e, em seguida, será gravado imediatamente no mesmo arquivo, incrementado. Se o número for menor que cinco, o script é executado.
Mais uma vez, o trabalho seria executado a cada hora, independentemente do conteúdo do arquivo de estado, mas o script só seria executado se o valor no arquivo de estado fosse menor de cinco.