Agendando tarefas em Linux/Unix usando o cron

Este artigo fala um pouco sobre o cron, uma ferramenta para agendamento de tarefas. O cron é uma ótimo daemon para fazer backup automáticos, agendamento de tarefas diárias, economizando tempo e trabalho repetitivos.

[ Hits: 157.491 ]

Por: Ricardo Souza Silveira em 27/03/2008


Alguns exemplos de comandos



Para rodar todo dia de hora em hora:

00 * * * * script

Para rodar de dez em dez minutos todos os dias:

00-59/10 * * * * script

Note a divisão por 5 do intervalo 00-59.

Para rodar uma seqüência de horas:

20 10,12,16,18,22 * * * script

Para rodar numa seqüência de dias do mês às 14:00:

00 14 03-15 * * script

Para rodar ao meio-dia e a meia-noite de terça a sábado:

00 00, 12 * * 2-6 script

Para enviar um e-mail as 20:20 no dia 23/03 para Pedro dizendo "Viva o Linux porque nós amamos a liberdade!":

20 20 23 3 * root echo "Viva o Linux porque nós amamos a liberdade!"|mail Pedro

Conclusão

Com a utilização da ferramenta cron, concluí que no agendamento de tarefas em sistemas Linux/Unix pode ser feito perfeitamente com o comando cron, sendo um ferramenta fácil de implementar. É ótima para fazer backup automáticos, agendamento de tarefas diárias economizando tempo e trabalho repetitivos.

Referências

1. Agendando tarefas e rotinas com o Cron:
http://www.guiadohardware.net/dicas/agendando-tarefas-rotinas-cron.html
Acessado pela última vez no dia 05/03/2008 às 14:00 horas

2. Usando cron e crontab para agendar tarefas
http://www.infowester.com/linuxcron.php
Acessado pela última vez no dia 05/03/2008 às 14:30 horas

3. Utilizando o crontab
http://www.devin.com.br/eitch/crontab/
Acessado pela última vez no dia 05/03/2008 às 15:30 horas

4. Crontab
http://pt.wikipedia.org/wiki/Crontab
Acessado pela última vez no dia 05/03/2008 às 15:45 horas

Página anterior    

Páginas do artigo
   1. Cron - Resumo e introdução
   2. Alguns exemplos de comandos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando drivers para placas de vídeo SiS

Configurando seu Openbox para reconhecer teclas multimídia

Load balance e alta disponibilidade com Bonding

Configurando o kernel 2.6.8.1-smp para Pentium IV Hyper-Threading (P4-HT)

Configurando DNS (bind9) no Debian Sarge

  
Comentários
[1] Comentário enviado por foxl em 28/03/2008 - 11:50h

poo bacana gostei

pelo cron tu pode fazer backup de hda para hdb por exemplo?

[2] Comentário enviado por rikrdosilveira em 29/03/2008 - 21:54h

foxl, respondendo sua pergunta, o cron é um agendador de tarefas, portando se vc agendar os comando para fazer backup, ele certamente o executará, dependendo é claro das permissões do usuario...

[3] Comentário enviado por removido em 30/03/2008 - 00:13h

cron apenas é um agendador..

utiliza-se o cron para que faça processos automaticos por exemplo.

se voce precisa que todo dia atualize seu apt ou ports, ao invés de você ter que ficar digitando, você adiciona a cron e pronto, o sistema fará isso automaticamente da forma que você especificou.

forte abraços

Deus te abençõe!

Thiago

[4] Comentário enviado por maran em 30/03/2008 - 15:11h

é otimo combinado com estratégias...
tava fazendo u martigo sobre isto, agora decha pra la ne hushuhusahusahusa

belo artigo

Te Mais...

[5] Comentário enviado por elfou em 31/03/2008 - 11:01h

Muuuito bom esse programa, bem melhor que um BAT da vida. Valeu ai cara.

[6] Comentário enviado por elgio em 01/04/2008 - 10:56h

Teu artigo está muito bem fundamentado e correto.

Só tome cuidado com teus exemplos, pois pequenos descuidos neles podem levar o leitor ao erro.

Como exemplo:
"
Para rodar ao meio-dia e a meia-noite de terça a sábado:

00 00, 12 * * 2-6 script
"
Como tu pos um espaco entre o 00 e a virgula, fizeste uma separacao de campo gerando erro!

Ainda, isto só funcionaria via crontab e não no /etc/crontab, pois no formato /etc/crontab TU PRECISA informar o user que irá executar (não consta no teu exemplo) e via utilitário crontab NÃO, pois valerá o usuário que o executou.

Muitos ainda se atrapalham com a forma do cron. Isto, por exemplo:
* 20 * * * root algo.sh

NÃO IRÁ EXECUTAR as 20h como ingenuamente alguém pode pensar, mas sim em TODOS OS MINUTOS de 20h, ou seja, vai executar as 20:00, novamente as 20:01, 20:02 ... 20:59. Irá executar 60 vezes. MUITO CUIDADO. Já vi muita gente causar estrago com isto. Se é para executar uma vez a cada hora, tu precisa dizer em qual minuto!

Vale dizer ainda que permitir que usuários usem cron ou at pode ser um sério RISCO a segurança. Um usuário mal intencionado pode agendar tarefas futuras, as chamadas bombas relógios.

Os arquivos /etc/cron.allow e /etc/cron.deny regulam quem pode e quem não pode usar o cront (via crontab)

[7] Comentário enviado por Fernando Dantas em 01/07/2009 - 09:38h

Obrigado seu comentário já me ajudou muito, porem estou com uma duvida. Tenho um servidor e gostaria de agendar (cron) o ajuste constante do horário do sistema com o da BIOS (todos os dias, meses).
O comando a ser realizado seria esse.
00 00 * * * root run -hwclock –hctosys

Agradeço a atenção.

Abraços.

[8] Comentário enviado por luiz cambuca em 22/07/2009 - 21:41h

Estou fazendo um trabalho sobre backups, escrevi pequenos scripts e inseri-os no crontab, funcionaram bem no localhost, porém não estão funcionado remotamente, o estranho é que, se eu executar os comandos diretamente no console, funciona ok, mas no cron não.
Usei duas ferramentas, rsync e scp, funcionaram perfeitamente no console como root, porém no cron, mesmo indicando para usar como root, não executam, existe alguma limitação como relação a backups remotos?
Se alguém puder me responder ficarei grato.

[9] Comentário enviado por removido em 15/04/2010 - 22:31h

Muito bom, comecei a mexer com o crontab agora e seu artigo foi muito útil.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts