O comando
at é usado para agendar a execução de um comando/script apenas uma vez.
Sintaxe:
# at <quando> <comando>
O argumento "<quando>" pode ser:
- now :: Execução instantânea;
- midnight :: Executa à meia noite;
- Mais opções podem ser vistas no arquivo: /usr/share//doc/at/timespec
Usuários comuns podem usar o "at", se constarem no arquivo
/etc/at.allow. Se este arquivo não existir, o arquivo
/etc/at.deny será lido e só não poderá usar o "at" quem constar nele. Se nenhum dos arquivo existirem, só o root poderá usar o "at".
Parâmetros e variações:
- -l (parâmetro - list) :: Este parâmetro lista os agendamentos em espera;
- atq (comando) :: Também lista agendamentos em espera;
- atrm (comando) :: Exclui agendamentos em espera.
O
cron é um daemon para agendamento de tarefas em determinados intervalos de tempo. A cada minuto este daemon verifica as tabelas de agendamento, chamadas crontabs, e executa as tarefas que estiverem configuradas.
Principal crontab (ou tabela de agendamento):
/etc/crontab :: Este é o crontab do sistema. Existem também um crontab para cada usuário.
O comando
crontab é para usuários específicos, ao invés do arquivo geral do sistema. Usamos o comando comando
crontab, que editará a tabela de agendamento do respectivo usuário.
Principais parâmetros:
- -l (list) :: Lista as tarefas agendadas;
- -e (edit) :: Edita o crontab do usuário;
- -r (remove) :: Remove o crontab do usuário.
Sintaxe:
# crontab <parâmetro> <usuário>
Configurando uma tabela de agendamento (ou crontab). O separador pode ser:
0-59 0-23 0-31 1-12 0-6 <comando>
Enumerando:
- Variação dos minutos;
- Das horas;
- Dos dias;
- Dos meses;
- Dos dias da semana (0 é domingo e 6 é sábado);
- Comando a ser executado.
Exemplo real de utilização:
* */4 * 5,6 1-5 /root/script.sh
Nesta linha, que poderia estar no arquivo
/etc/crontab, por exemplo, executaria o arquivo "script.sh" a cada quatro horas, nos meses de maio e junho de segunda à quinta-feira.
Explicando os caracteres utilizados no exemplo:
- * → Nada a fazer;
- - → Determina um período;
- / → Determina um espaço de tempo. Um marcapasso;
- , → Determina tempos específicos. Serve para intercalar o tempo, quebrar uma sequência.
Diretórios auxiliares:
- /etc/cron.hourly/ → Executa os arquivos dentro dele de a cada hora;
- /etc/cron.daily/ → Executa os arquivos todos os dias;
- /etc/cron.monthly/ → Executa todos os meses;
- /etc/cron.weekly/ → Executa toda semana.
Estes diretórios são usados quando não é necessário especificar a hora para execução de uma tarefa.
Arquivos para controle de utilização do contrab:
- /etc/cron.allow → Se existir, só os usuário especificados nele poderão agendar tarefas;
- /etc/cron.deny → Se existir, os usuários que forem especificados nele não poderão agendar tarefas.
Obs.: Se os dois não existirem, todos os usuários poderão agendar tarefas.