Muitas vezes precisamos agendar tarefas que usamos regularmente para uma execução automática e para isso o cron é uma ótima solução. Com ele você pode agendar tarefas com data e hora marcadas, confira como nesse artigo.
Ao executar o comando "crontab -e", seu editor de texto abrirá
(provavelmente o vi) e aí você já poderá começar a
agendar suas tarefas. Vejamos a estrutura abaixo:
Minuto Hora Dia do mês Mês Dia da Semana Comando
Essa é a ordem em que as informações devem ser inseridas.
Exemplo:
30 14 5 * * tar zcvf /bkp.tar.gz /etc
No exemplo acima ficará agendado para todo dia 5 de todo mês às 14:30 o comando "tar zcvf /bkp.tar.gz /etc".
Os campos e seus valores:
Campo
Valores
Minuto
0-59
Hora
0-23
Dia do Mês
1-31
Mês
1-12
Dia da Semana
0-6 ( 0=domingo, 1=segunda etc.)
Sendo o "*" correspondente a todas as possibilidades.
Tendo como base os conceitos acima, agendaremos um comando
para listar o conteúdo de um certo diretório de 2 em 2 minutos,
somente de Segunda à Sexta.
$ crontab -e
*/2 * * * 1-5 ls -lah
OBS: Não esqueça de salvar o arquivo (no caso do "vi" use o ESC e depois :x para salvar e sair).
Para passar mais de um valor a qualquer campo utilize a "," (vírgula). Confira:
$ crontab -e
10,30,45 19 1,15 * * tar zcvf /bkp.tar.gz /etc
O comando acima executará o comando "tar zcvf /bkp.tar.gz /etc" todos os dias 1 e 15 do mês às 19:10, 19:30 e 19:45h.
[4] Comentário enviado por fchevitarese em 21/02/2007 - 08:37h
será que vc pode me ajudar? eu tenho um script de minha autoria que não funciona no crontab!
já dei todas as permissões, no próprio cron especifico o usuário que pode executá-lo mas nada acontece!
Gostaria de saber se vc pode me ajudar, pois outras coisas funcionam no cron!
[8] Comentário enviado por almirneo em 07/11/2008 - 16:41h
Vlw mesmo cara, ótimo artigo, direto e objetivo.
Eu estava tentando editar o arquivo /etc/crontab pelo vi e não dava certo ele não agendava a tarefa, mas através do crontab -e deu certinho.
vlw mesmo.
[10] Comentário enviado por guiguix em 22/07/2009 - 15:24h
Só pra constar, podemos deixar que o próprio site tenha vida própria, executando os scripts php (ou ASP, ou ainda JSP, etc etc etc) de modo automático:
AGENDAR O BACKUP OU ENVIO DE E-MAILS ATRAVÉS DO PHP:
$crontab -e
*/5 * * * * wget -q -O /dev/null http://[meusite.com.br]/[minhapasta]/meu_arquivo.php
// exemplo adaptado do site do moodle - instalação
Ou seja: o programa wget baixa o "meu_arquivo.php", quando acessa, executando os comandos php deste arquivo! Assim o site terá "vida própria".
Nota: Se preferir, faça um .htaccess liberando o acesso da pasta [minhapasta] apenas para a máquina responsável pelo carregamento do script, que no meu caso foi a localhost (muitas vezes o próprio serviço de hospedagem oferece o serviço cron [no cPanel] ).
[12] Comentário enviado por removido em 04/01/2011 - 03:21h
Meu velho um erro no seu artigo...
Na verdade não será "provavelmente o VI" mas sim o editor que estiver por default(padrão) e caso você não seja muito "enturmado" com o VI apenas mudo o editor padrão com o comando:
[13] Comentário enviado por cngbinho em 22/06/2011 - 17:01h
Ola, galera eu to com um problema para cria um cron.
Eu preciso entender o que esse exemplo ai abaixo faz por que eu preciso criar um igual.
Eu ja inseri uma linha no no crontab igual mais não me acontece nada..
Alguem que tenha conhecimento pode me explicar melhor esse cron?
E como faço para saber se ta rodando o cron, eu usu o ubunto.