Usando cron
Consiste de dois programas:
  • crond: é o daemon de cron, é o processo que executa as instruções, e se inicia no momento da inicialização do sistema. Ele desperta de 60 em 60 segundos examnando todos os arquivos e executando os comandos agendados.
  • Crontab: programa de manipulação das tabelas de cron.
Os arquivos crontab dos usuários ficam em /var/spool/cron
Crontab [opções]
-e : edita interativamente o arquivo crontab, normalmente o editor é o vi.
-l : exibe o conteudo de crontab.
-r : remove o arquivo crontab.
-u usuário : opera no arquivo crontab do usuário especificado.
Arquivos crontab usam o formato flexível para especificar horários para a execução dos comandos. Cada linha contém 6 campos :
minuto hora dia mês dia_semana comando
minuto : de 0 a 59
hora : de 0 a 23
dia : de 1 a 31
mês : de 1 a 12 ou jan a dec
dia_semana : de 0 a 7 ou sun a sat
comando : comando que se deseje
exemplo : configurar meuprog para rodar todos os dias 24/7 as 17:00
0 17 * * * meuprog
rodar meuprog sempre as 7:17am e 7:17pm nos dias 2 e 18
17 7,19 2,18 * * meuprog

Arquivos crontab do sistema
/etc/crontab e /etc/cron.d , possuem um campo a mais para o nome de usuário entre as especificações de horário e o comando.
Rodar meuprog as 14:00 como root
0 14 * * * root meuprog

Usando at
É usado quando se quer atrasar a execução de um comando ou um grupo de comandos para outro momento. Aceita comandos vindos da entrada padrão ou de um arquivo. Emite comandos para a fila de at, para serme usados no horário especificado.
at [-f arquivo ] horário
at [opções]
-d tarefa 1 [,tarefa2,….] : apaga tarefas da fila at (equivalente ao
comando atrm).
-l : Lista itens da fila.
Exemplos:
Rodar myprog uma vêz, às 9:37am de amanhã
$at 9:37am tomorrow
at>myprog
at>ˆD
Rodar comandos que se encontrem listados no arquivo lista_comandos às 17:00 daqui a dois dias:
$ at -f lista_comandos 5pm + 2 days
Listar itens na fila at
$at -l
Remover tarefa número 5 da fila
$at -d 5

Controlando Acesso de Usuários a cron e at
Normalmente é seguro permitir que os usuários utilizem as facilitys cron e at. Porém se houver a necessidade de proibir alguns usuários de usar este serviço, existem dois arquivos de autorização:
cron.allow, cron.deny
at.allow, at.deny
São simples listas com nomes de contas. Se allow existir, somente os usuários listados nele poderão utilizar, se não existir e houver um deny, somente os usuários fora da lista poderão usar.
Para cron se nenhum existir, todos poderão usar, para at, se nenhum existir somente o root poderá usar.