Usando cron e crontab para agendar tarefas

O cron é um recurso presente no Linux que permite a execução automática de tarefas em datas e horários pré-determinados. O objetivo deste texto é mostrar como utilizá-lo.

[ Hits: 606.186 ]

Por: Emerson Alecrim em 18/01/2005


Introdução



Suponha que você seja dono de um serviço de hospedagem de sites e diariamente precisa disponibilizar, numa pasta acessível por FTP, o arquivo de log de acessos de um cliente. É trabalhoso fazer isso manualmente e na pior das hipóteses, você pode esquecer. Felizmente o Linux conta com o serviço cron, que permite a realização de tarefas periodicamente e em dias e datas determinados por você. O objetivo deste artigo é mostrar como fazer isso.

O que é cron


O cron pode ser interpretado como um serviço do Linux que é carregado durante o processo de boot do sistema. Trata-se de uma ferramenta que permite programar a execução de comandos e processos de maneira repetitiva ou apenas uma única vez.

No caso citado da introdução, você poderia usar o cron para que o arquivo de log do cliente fosse disponibilizado todos os dias às 12 horas, por exemplo. Isso é possível porque o daemon (uma espécie de programa que executa tarefas em segundo plano) do cron executa os comandos nas datas e horários especificados. A cada minuto o cron é acionado para verificar se há tarefas a serem realizadas.

Para executar as tarefas, o cron usa uma espécie de tabela conhecida como crontab. O arquivo crontab geralmente fica localizado no diretório /etc, mas também pode estar em um diretório que cria um crontab para cada usuário do sistema, geralmente em /var/spool/cron/.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Como usar o cron
Outros artigos deste autor

O gerenciador de boot GRUB

Processos no Linux

Máquina Virtual Java (Java Virtual Machine)

Leitura recomendada

openSUSE Evergreen

Utilizando um SSD ao lado de um HD em Micro Desktop

Mamãe, quero Slack! (parte 2)

sidux Hipnos XFCE

Fontes da Microsoft - Instalação no Ubuntu e Fedora

  
Comentários
[1] Comentário enviado por fernandoamador em 19/01/2005 - 04:21h

Ótimo artigo

[2] Comentário enviado por leogsouza em 02/11/2005 - 03:01h

Mto bom agora posso programar o sarg pra gerar relatorios diarios do squid

[3] Comentário enviado por removido em 04/08/2006 - 12:42h

Simples e funcional , bom artigo.

[4] Comentário enviado por ebisco em 13/11/2006 - 15:52h

O cron permite fazer um agendamento diario de uma determinada página web?

[5] Comentário enviado por GilsonDeElt em 21/01/2007 - 18:44h

Ótimo artigo!

Simples, direto e eficiente.

Valeu!!!

[6] Comentário enviado por lero em 31/01/2007 - 18:17h

Pessoal podem me ajudar?
* 1 * * * /usr/sbin/sarg.daily
* 1 * * 7 /usr/sbin/sarg.weekly
* 1 1 * * /usr/sbin/sarg.monthly
sendo q daily eu acho q configureipra todos os dias a 1hr da manha
weekly eu acho q configurei pra todos os domingo 1hr da manhã
monthly eu acho q configurei pra todo dia 1º 1hr da manhã

Podem me ajudar?

[7] Comentário enviado por balani em 15/06/2007 - 19:29h

Muito bom seu artigo, parabens, simples e completo.

[8] Comentário enviado por mvleandro em 10/08/2007 - 21:54h

Olá, gostei do seu artigo! Aborda de uma forma semelhante a um artigo que também postei no meu blog. Caso se interesse, pode dar uma olhada lá:

http://www.prosadigital.com/linux/agendar-tarefas-com-o-cron/

Grande abraço!

[9] Comentário enviado por f_Candido em 27/08/2007 - 16:13h

Muito Bom. Direto e bem didático.
Vlws

[10] Comentário enviado por andrade.br em 24/01/2008 - 10:48h

otimo artigo


[11] Comentário enviado por andrade.br em 24/01/2008 - 10:49h

Sem duvida vai me ajudar batante...coloca mais uns artigos mais complexos do cron vai ser de grande utilidade..,valeusususu cara

[12] Comentário enviado por hendrigo em 25/11/2008 - 10:50h

Acho que há um pequeno erro.
Dia da semana 0-6 (o “0″ é domingo), 1 é segunda, etc.
0 a 7 resulta em 8 dias na semana!
até mais.

[13] Comentário enviado por gcassaniga em 13/03/2009 - 09:00h

RES comentário [12]...

na verdade os dias da semana podem ser definidos com números de 0 a 7 mesmo, sendo que o 0 e o 7 podem ser usados como DOMINGO.

Abraços...

[14] Comentário enviado por wryel em 08/07/2009 - 11:42h

excelente!

fica a minha pequena, duvida, eu peguei um script com * no minuto, o que significa ? deu-se a entender que é a todo minuto o.O [embora eu acredito que não seja haha, mas não tenho tanta certeza assim :P]

[15] Comentário enviado por konqueror em 27/01/2010 - 20:41h

Bom artigo,obrigado e parabéns

[16] Comentário enviado por nandow em 08/02/2011 - 09:42h

Muito bom!
Obrigado!

[17] Comentário enviado por rnduart em 28/04/2011 - 12:06h

Fácil como todo iniciantes como eu gosta.

[18] Comentário enviado por Antonio_Bispo.Jr em 10/06/2011 - 01:01h

Gostei muito do atrigo, mas não conseguitirar minha duvida ainda, se eu tiver que agendar uma tarefa, tipo /bin/acertar_hora no periodo dos dias entre 16/10/2011 ao dia 19/02/2012 como eu faria?

[19] Comentário enviado por jardellameu em 28/05/2014 - 08:29h

Amigo infelizmente o coron não trabalha com o campo ano, mas vc pode executar apartir do dia 10/10 e ele vai parar no dia 19/02

Exemplo:

30 2 * 10-02 1-6 comando

neste caso ele vai executar todos os dias nos meses 10-11-12-01 e 02

[20] Comentário enviado por joorlando3 em 21/07/2014 - 10:40h

Muito Bom!

Simples e prático.

[21] Comentário enviado por demissonsantos em 31/08/2014 - 23:55h

Olá

Eu fiz passo a passo como no artigo porém sem sucesso, descobrir o cron quando fui instalar o DDNS no linux Ubuntu, onde o tutorial pediu para adicionar a seguinte linha no crontab */1 * * * * /usr/local/sbin/ddns.sh, em seguida digitar no terminal o comando crontab -e mas da a seguinte mensagem - demisson@servidor:~$ crontab -e no crontab for demisson - using an empty one
888 daí não sei o que fazer.. podem me ajudar ?

[22] Comentário enviado por biophas em 21/04/2016 - 15:42h

Wester,

Parabéns pela contribuição.

[23] Comentário enviado por Mc.Eagle em 30/09/2016 - 22:19h

Interessante, agora 11 anos depois e continua atual, se fosse em alguma versão da MS talvez já tivesse saído de versão. Isso é linux, maravilhoso.

[24] Comentário enviado por Vsg5662 em 01/04/2018 - 18:18h

2005 ajudando 2018. Vlw bro.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts