MozBackup 1.4.6 Final Show na rua!!!

O que é o Crontab?

Criado por: Pedro Simões em 6 de Março de 2007 Deixar um comentário

O cron é um serviço unix que permite que tarefas sejam executadas em modo “background” em intervalos regulares pelo deamon da cron. Estas tarefas são normalmente designadas por “cron jobs” em unix.

Os pontos seguintes resumem as funcionalidades do crontab:
1. Restrições do crontab
2. Comandos do crontab
3. Ficheiro do crontab - sintaxe
4. Exemplo do crontab
5. Ambiente do crontab
6. Desabilitar email
7. Gerar ficheiro de registo da actividade do cron

1. Restrições do crontab

Pode executar o crontab se o seu username constar do ficheiro /usr/lib/cron/cron.allow. Se esse ficheiro não existir, poderá executar o crontab se o seu username não constar do ficheiro/usr/lib/cron/cron.deny.
Se apenas existir o ficheiro /usr/lib/cron/cron.deny e estiver vazio, todos os utilizadores podem usar o crontab. Se nenhum dos ficheiros existir, apenas o utilizador root pode usar o crontab.
Os ficheiros allow/deny são compostos por um username por linha.

2. Comandos do crontab

Deve ser executado o comando “export EDITOR=vi” para especificar um editor de texto para abrir o ficheiro do crontab. Neste caso o editor definido foi o VI.

crontab -e Edita o ficheiro do crontab, ou cria um caso ainda não exista.
crontab -l Mostra o conteúdo do ficheiro do crontab.
crontab -r Remove o ficheiro do crontab.
crontab -v Mostra quando foi a ultima vez que o ficheiro do crontab foi editado. (Apenas disponível em alguns sistemas.)

3. Ficheiro do crontab - sintaxe

Sintax do crontab:
O ficheiro do crontab é composto por cinco campos para especificar o dia, a data e a hora seguído pelo comando a ser executado nessa altura.

* * * * * comando a ser executado
- - - - -
| | | | |
| | | | +—– dia da semana (0 - 6) (Domingo=0)
| | | +——- mês (1 - 12)
| | +——— dia do mês (1 - 31)
| +———– houra (0 - 23)
+————- min (0 - 59)

* no valor

4. Exemplo de Crontab

Uma linha na crontab como a que está em baixo remove os ficheiros temporários de /home/someuser/tmp each day às 18:30 de cada dia.

30 18 * * * rm /home/someuser/tmp/*

Alterando os valores dos parâmetros, como mostrado abaixo, irá provocar que este comando corra a diferentes horas (ou datas):

min| hora| dia do mes| mes| dia da semana| data/hora de execução

30 0 1 1,6,12 * — 00:30 Hrs no 1º de Jan, Junho e Dez.

0 20 * 10 1-5 –8.00 PM todos os dias da semana (Seg-Sex) apenas em Outubro.

0 0 1,10,15 * * — meia noite no 1º, 10º e 15º dia do mes.

5,10 0 10 * 1 — às 12:05 e 12:10, todas as segundas e no 10º dia de cada mês.

Nota : Se inadvertidamente aceder à crontab sem argumentos não faça Control-d para sair. Esse comando irá remover todas as entradas do crontab. Faça Control-c para sair.

5. Variáveis de ambiente da Crontab

A crontab invoca os comandos a partir da directoria /home do utilizador, dentro da shell (/usr/bin/sh).
No entanto é possivel definir variáveis de ambiente para cada shell:
HOME=user’s-home-directory
LOGNAME=user’s-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

6. Desabilitar email

Por omissão a crontab envia uma mensagem de correio electrónico por cada comando executado. Caso não pretenda que esta mensagem seja enviada deve adicionar a seguinte linha ao final de cada comando da cron.

>/dev/null 2>&1

7. Gerar ficheiro de log

Para recolher logs de execução da cron num ficheiro:

30 18 * * * rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log


Arquivado na categoria: Linux

5 comentários a “O que é o Crontab?”

  1. lopes diz:

    já agora que falamos disso… tenho um cron job a correr exactamente dessa forma e usei a forma indicada no ponto 7 para criar um log. O que mando correr é um programa que fiz em Java e que, como tal, de vez em quando rebenta… :P o meu problema é que quando o faço correr manualmente consigo ver o log do erro… quando é corrido pelo cron não manda o log do erro para o log que eu defino como saida do cron… alguém sabe onde é que aquilo vai parar e se há forma de forçar a que vá parar ao log que eu crio???

  2. dc diz:

    Desculpem lá o Off-Topic!

    Vitor, esse Favicon é um bocado ranhoso! eh eh
    Mas prontos… sempre é um “refresh” ao antigo, mas não gosto! e prontos!

    Mesmo assim parabéns pela loufada de ar fresco que o Blog todos os dias vai levando, isto até parece uma coisa profissional (cof cof) :P

    CUMPS

  3. Evandro diz:

    Excelente artigo! Parabéns Simões

  4. iGama diz:

    Adicionado com prazer ao GuiaUbuntuPt.org pela utilidade das informações :)

    http://www.guiaubuntupt.org/wiki/index.php?title=Crontab

    Bom artigo psimoes.

    Cumprimentos

  5. Pedro Dias diz:

    Os crontab são excelentes, quando as tarefas não são pesadas. Num ambiente com 70 users e cron’s a correrem de 5 em 5 minutos com processamentos pesados, levava ás vezes a que o AIX arreasse… Mas lá está, depende da máquina e que os aplicativos no cron não contenham erros. Senão está tudo estragado.
    Já agora, parabéns por este site. Está magnifico, mas só contem temas na óptica do utilizador doméstico… Embora existam alguns temas que envolvem um pouco mais de “expertise”.
    Para quando, começar a apresentar temas relacionados com a administração de Mainframes baseados em AS/400, Aix, Informix, Unix…?? Isso seria a cereja no topo :))

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste weblog ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste weblog reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação de seu autor (nome completo e endereço válido de email) também poderão ser excluídos.