Se você tiver a infelicidade de estar em um sistema em que não tem permissão para usá- cron
lo, poderá fazer algo semelhante com o at
. Este é um script que se reprograma para ser executado no dia seguinte às 8h45:
#!/bin/bash
the_main_thing &>/dev/null
[[ $0 = /* ]] && script=$0 || script=$PWD/$0
at -f "$script" 0845 &>/dev/null
the_main_thing
é o comando ou script que você deseja executar periodicamente.
O objetivo [[ $0 = /* ]] && script=$0 || script=$PWD/$0
é obter o caminho absoluto do próprio script atual.
Em at -f "$script" 0845 &>/dev/null
, -f
é para especificar o script a ser executado: o próprio script atual com caminho absoluto, caso contrário, pode não funcionar.
Para executar algo a cada 5 horas, você pode usar tempos relativos, por exemplo:
at -f "$script" 'now + 5 hours' &>/dev/null
Semelhante a cron
, a saída de at
trabalhos agendados é enviada por email para a conta UNIX. Para evitar poluir a caixa de correio, provavelmente é uma boa ideia redirecionar ambos com &> /dev/null
, e você pode querer fazer o mesmo the_main_thing
também.
Para ver suas tarefas agendadas, use atq
. Para remover tarefas agendadas, use atrm
.