FreeBSD Handbook/Administração/Configuração e Ajuste/Configurando o Utilitário cron


FreeBSD Handbook
Anterior Capítulo 11. Configuração e Ajuste Próxima

11.6 Configurando o utilitário cron

Contribuição de Tom Rhodes & Thiago Neves.

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. O utilitário cron também verifica o diretório /var/cron/tabs, em busca de novos arquivos crontab. Estes arquivos crontab armazenam informações sobre funções específicas que o cron deve executar em determinados momentos.

O utilitário cron usa dois tipos diferentes de arquivos de configuração, o crontab do sistema e os crontab de usuários. A única diferença entre estes dois formatos é o sexto campo. No crontab do sistema, o sexto campo é o nome de um usuário utilizado para executar o comando. Isto dá ao crontab do sistema a capacidade de executar comandos como qualquer usuário. Em um crontab de usuário, o sexto campo é o comando para ser executado e todos os comandos são executados como o usuário que criou o crontab; isto é uma característica importante para segurança.

Nota: crontab's de usuários permitem a usuários individuais agendar tarefas sem a necessidade de privilégios de root. Comandos em um contrab de usuário rodam com as permissões do usuário dono deste contrab.

O usuário root pode ter um crontab de usuário, como qualquer outro usuário. Este é diferente do /etc/crontab (crontab do sistema). Por causa do crontab do sistema, normalmente não há necessidade de criar um crontab para o root.

Vamos dar uma olhada no arquivo /etc/crontab (o crontab do sistema):

# /etc/crontab - root's crontab for FreeBSD
#
# $ FreeBSD: /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 na maioria dos arquivos de configuração do FreeBSD, o caracter # representa um comentário. Um comentário pode ser colocado no arquivo como um lembrete de qual ação é executada e porque. 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 as configurações de ambiente, como neste exemplo, onde são utilizados 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 os caminhos para os comandos deverão ser absolutos. Se o HOME for omitido, o cron usará o diretório home do usuário dono do arquivo crontab, no caso de crontab de usuário, ou do usuário definido no sexto campo (who), no caso de crontab do sistema.
*3
Esta linha define um total de sete campos. Temos aqui os valores minute, hour, mday, month, wday, who, e command. São quase todos auto-explicativos. minute é o minuto do horário em que o comando será executado (0 a 59). hour é semelhante à opção minuto, só que representa a hora (0 a 23). mday para o dia do mês (1 a 31). month é similar a hora e minutos, designa o mês (1 a 12). A opção wday significa dia da semana (0 a 6, sendo 0 o domingo). Todos estes campos devem ser valores numéricos, e seguir as vinte e quatro horas do relógio. O campo who é especial e só existe no arquivo /etc/crontab. Este campo especifica sob qual usuário o comando deve ser executado. Quando um usuário instala seu aquivo crontab, ele não terá essa opção. Finalmente, a opção command. Este é o último campo, assim, naturalmente deve designar o comando a ser executado.
*4
Esta última linha definirá os valores discutidos acima. Perceba que aqui temos um */5, seguido por vários outros caracteres *. Estes caracteres * significam "primeiro-último" e podem ser interpretados como toda vez. Assim, analisando essa linha, é evidente que o comando atrun será executado pelo root a cada cinco minutos, independentemente de que dia ou mês seja. Para obter mais informações sobre o comando atrun, consulte atrun(8) no manual.
Os comandos podem ter qualquer número de parâmetros passados para eles, no entanto, os comandos que se estendem a várias linhas precisam ser quebradas com a barra invertida "\" que é o caractere de continuação de linha.

Esta é a configuração básica para todo arquivo crontab, embora exista uma diferença nesta. O campo de número seis, onde é especificado o nome de usuário, só existe no arquivo do sistema /etc/crontab. Este campo deve ser omitido para arquivos crontab de usuários.

11.6.1 Instalando um Crontab

Importante: Você não deve usar o procedimento descrito aqui para editar/instalar o contrab do sistema. Basta utilizar seu editor favorito: o utilitário cron irá notar que o arquivo foi alterado e utilizará a versão atualizada. Consulte nosso FAQ para mais informações.

Para instalar um crontab de usuário recém escrito, primeiro use o seu editor favorito para criar um arquivo no formato adequado, para então usar o utilitário crontab. O uso mais comum é:

 % crontab arquivo-crontab

Neste exemplo, arquivo-crontab é o nome de um crontab criado anteriormente.

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

Para usuários que desejam começar seu próprio arquivo crontab do zero, sem o uso de um modelo, a opção -e do crontab está disponível. Isto irá chamar o editor com um arquivo vazio. Quando o arquivo é salvo, ele será automaticamente instalado pelo comando crontab.

Se depois você quiser remover por completo o crontab do usuário, use o crontab com a opção -r.


Anterior Índice Próxima
Inicializando Serviços Topo Usando rc no FreeBSD
Última edição desta página: 31/08/2010 (20100831124353)