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: 156.989 ]

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

openSUSE 12.1 - Instalando Oracle Java

Instalando e configurando o vsftpd no Ubuntu

Documentação para a função de carregamento saudável da bateria do notebook Acer Aspire 5 no Linux

Criando túneis com o VTUN

Assistindo vídeos no XMMS

  
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