Tutorial de cron e crontab

Comments

O crontab é o arquivo de configuração do cron, que executa comandos em determinados intervalos de tempo.

Digita na linha de comando para editá-lo com o editor de textos padrão da sua conta de usuário na máquina:

CODE:
  1. crontab -e

Coloque um comando por linha. A estrutura é a seguinte:

CODE:
  1. # Jogo da velha no começo da linha é comentário
  2. # +---------------- minuto (0 - 59)
  3. # |  +------------- hora (0 - 23)
  4. # |  |  +---------- dia do mês (1 - 31)
  5. # |  |  |  +------- mês (1 - 12)
  6. # |  |  |  |  +---- dia da semana (0 - 7) (Domingo=0 or 7)
  7. # |  |  |  |  |
  8. # *  *  *  *  *  Comando para executar

Imaginemos que você queira rodar o comando "python2.4 /home/usuario/script.py" todo dia às duas da manhã:

CODE:
  1. 00 2 * * * python2.4 /home/usuario/script.py

Para especificar um intervalo em qualquer campo, utilize um traço, ou sinal de subtração (esse: "-"). Por exemplo, a configuração abaixo será executada todo dia da uma às dez da manhã de minuto em minuto:

CODE:
  1. * 1-10 * * * python2.4 /home/usuario/script.py

Para especificar "ou", utilize uma vírgula. Segue um exemplo para ser executado apenas às duas da manhã e da tarde, aos Domingos e Quarta-Feiras:

CODE:
  1. * 2,14 * * sun,wed python2.4 /home/usuario/script.py

Se você quer rodar o script de cinco em cinco minutos no Sábado (note a divisão dos minutos):

CODE:
  1. 00-59/5 * * * 6 python2.4 /home/usuario/script.py

Por padrão, o crontab enviará um email à conta que o carrega se existe alguma saída no comando. Para cancelar o email do crontab, redirecione a saída para outro lugar. Por exemplo, para /dev/null

CODE:
  1. 00 2 * * * python2.4 /home/usuario/script.py>/dev/null 2>&1

Para redirecionar a um arquivo:

CODE:
  1. 00 2 * * * python2.4 /home/usuario/script.py>/home/usuario/arquivo.log

Para ver o seu crontab:

CODE:
  1. crontab -l

Para apagar o crontab:

CODE:
  1. crontab -r

Quaisquer dúvidas, comentem.

  • Juliana
    Ola,
    Estou tentando rodar duas linhas de comando no meu crontab e salvando num .log. Mas o resultado do meu log sai todo baguncado.
    Os comandos sao:
    # this is 20.00PM on 11 September
    0 20 11 9 * . ~/.profile; cd /apps/tower/extract; /apps/tower/extract/run_it.sh scandates_real_11Sep_NSW > cron_11Sep_nsw.log 2>&1
    0 20 12 9 * . ~/.profile; cd /apps/tower/extract; /apps/tower/extract/run_it.sh scandates_real_12Sep_NSW > cron_12Sep_nsw.log 2>&1
    #

    As duvidas que tenho eh:
    1- Devo colocar alguma coisa a mais ou a menos pra fazer ele funcionar (tipo um ponto e virgula)?
    2- Posso rodar 2 comandos ao mesmo tempo(um pra cada dia) e salvar em dois logs diferentes?
    3- Por que o primeiro comando parece rodar legal e o segundo eh todo baguncado e nao faz o que deve fazer?

    Agradeco a quem puder responder,
    Juliana
  • elias
    não dá pra botar cosas do shell, como . ou cd, num crontab.. ou vc faz um shell script, ou usa bash -c '. ~/.profile; cd ..'

    mas vc falou isso a 4 meses, juliana, acho que vc deve ter já conseguido, ou desistido, e n acho que vá voltar aqui, :P mas enfim.
blog comments powered by Disqus

Português flagItaliano flagCoreano flagChinês (simplificado) flagEnglish flagAlemâo flagFrancês flagEspanhol flag
Japonês flagÁrabe flagRusso flagHolandês flagBúlgaro flagTcheco flagCroata flagDinamarquês flag
Finlandês flagHindu flagPolonês flagRomeno flagSueco flagGrego flagNorueguês flag 
By N2H
96 DOLETAS de desconto na hospedagem Dreamhost!
Use o "PROMO CODE" INERCIA. LAMP com 20GB de espaço e 1TB de transferência.

Artigos relacionados

  • No Related Posts

Categories