6.6. Configurando o Utilitário cron

Contribuição de Tom Rhodes.

Uma das ferramentas mais úteis no FreeBSD é o cron(8). O utilitário cron roda em segundo plano e constantemente verifica o arquivo /etc/crontab. Ele também verifica o diretório /var/cron/tabs na procura novos arquivos do tipo crontab. Estes arquivos crontab armazenam informações específicas sobre funções que o cron é designado a desempenhar em algumas ocasiões.

Vamos dar uma olhada no arquivo /etc/crontab:

# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
# (1)
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin (2)
HOME=/var/log
#
#
#minute hour    mday    month   wday    who command (3)
#
#
*/5 *   *   *   *   root    /usr/libexec/atrun (4)
(1)
Como muitos arquivos de configuração do FreeBSD, o caracter # representa um comentário. Um comentário pode ser colocado em um arquivo como um lembrete de como e porque uma ação desejada é executada. Os comentários não podem estar na mesma linha que o comando senão serão interpretados como parte do comando; eles devem estar em uma nova linha. Linhas em branco são ignoradas.
(2)
Primeiramente, o ambiente deve ser definido. Os caracteres (=) são usados para definir qualquer configuração de ambiente, como neste exemplo que são usados para as opções SHELL, PATH, e HOME. Se a linha do shell for omitida, o cron usará o padrão, que é o sh. Se a variável PATH for omitida, nenhum padrão será usado e o caminho para os arquivos deverá ser absoluto. Se o HOME for omitido, o cron usará o diretório base do usuário que o invocou.
(3)
Esta linha define um total de sete campos. Aqui são listados os valores minute, hour, mday, month, wday, who, e command. Estes são praticamente autoexplicativos. Minute é o tempo em minutos em que o comando será executado. Hours é similar à opção Minute, em horas. Month é similar à Minute e Hour, designando o mês. As opções mday vem de dia da semana. Todos estes campos devem ter valores numéricos, e obedecer ao relógio do tipo 24h. O campo ``who'' é especial, e existe apenas no arquivo /etc/crontab. Este arquivo especifica sob que usuário o comando deve ser executado. Quando um usuário instala seu aquivo crontab, ele ou ela não terá esta opção. Finalmente, opções do comando são listadas. Este é o último campo, sendo assim, naturalmente deve designar o comando a ser executado.
(4)
Esta última linha definirá os valores discutidos acima. Note aqui que tempos a listagem */5, seguida por vários caracteres *. Estes caracteres * significam ``primeiro-último'', e podem ser interpretados como qualquer tempo. Então, julgando por esta linha, fica claro que o comando atrun será invocado pelo root a cada cinco minutos não importando o dia ou mês. Para mais informações sobre o atrun, veja a página de manual atrun(8).

Comandos podem ter qualquer número de parâmetros passados à eles mesmos; entretando, comandos que se extendem à várias linhas devem ser quebrados com o caracter contrabarra ``\''.

Esta é a configuração básica para todo arquivo crontab, embora exista algo diferente a respeito deste. O campo número seis, onde é especificado o nome de usuário, que existe somente no arquivo /etc/crontab. Este arquivo deve ser omitido para arquivos crontab individuais de usuários.

6.6.1. Instalando a Crontab

Para instalar sua recém-escrita crontab, basta usar o utilitário crontab. O uso mais comum é:

# crontab arquivo-crontab

Existe também uma opção para listar os arquivos crontab instalados, basta passar a opção -l para o crontab e observar a saída do comando.

Usuários que desejem começar seu próprio arquivo crontab do zero, sem usar um exemplo, podem usar crontab -e. Este comando invocará o editor com um arquivo vazio. Quando o arquivo for gravado será automaticamente instalado pelo comando crontab.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.