MeuMySQL Blog is now at http://blog.mdnsolutions.com/.

Friday, October 5, 2012

Cron Jobs


Salve galera! Como dizem: Toda solução surge de um problema. Hoje tive que fazer uma cron job para meu servidor e como não fazia ideia fiz minhas pesquisas e encontrei a solução abaixo. Espero que seja útil para mais alguém.

O que é uma Cron Job?

Cron jobs são "scripts" (ou tarefas) agendadas no seu sistema operacional para rodar de tempos em tempos. O termo “Cron Job” ou cron está ligado a sistemas UNIX, no entanto o Windows também tem algo semelhante chamado Tarefas agendadas, veja aqui mais à respeito.

Neste artigo vou abordar como configurá-las no ubuntu 12.04.

Pra que usar uma Cron Job?

Elas podem ser usadas para qualquer fim, desde atualizações no seu sistema operacional, iniciar um processo, rodar um script (php. ruby e assim por diante). Mas as possibilidades são ilimitadas.

Criando uma cron

Basicamente, uma cron job consiste em uma linha com 6 valores separados por espaço, assim:

minuto hora dia mes dia-da-semana linha-de-comando

Vamos a alguns exemplos de configuração de tempo antes de criar a cron em si:

Cron Job que rode todo dia as 08:00am
0 8 * * * linha-de-comando

Cron Job que rode a meia-noite de três em três dias
0 0 */3 * * linha-de-comando

Cron Job que rode as 14h30 de segunda e sexta
30 14 * * 1,5 linha-de-comando

Cron Job que rode todo dia a cada duas horas
0 */2 * * * linha-de-comando

Instalando a Cron

Abra o arquivo crontab com seu usuario sudo:

$ sudo nano /etc/crontab

E insira no final do arquivo algo como na linha abaixo:

* 1 * * * root /var/www/arquivo_cron.txt

E não se esqueça de dar permissão de execução no arquivo:

$ chmod 755 /var/www/arquivo_cron.txt

Neste exemplo o arquivo vai rodar utilizando das permissões do usuário root. E para checar se sua cron esta rodando ou ainda se há erros basta verificar através do arquivo de log do sistema:

$ tail -f /var/log/syslog

Bem, é isso. Rodando, funcionando e fazendo nossa vida mais feliz.

Agradecimento especial ao Gabriel de Figueiredo que me deu um suporte também.
Até a próxima galera.



Referências:
http://blog.thiagobelem.net/o-que-sao-e-como-usar-as-cron-jobs/
http://forum.civicrm.org/index.php?topic=24956.0
http://askubuntu.com/questions/139061/crontab-not-working
http://askubuntu.com/questions/56683/where-is-the-cron-crontab-log
http://www.adminschoice.com/crontab-quick-reference


3 comments: