• CO.CC:Free Domain
  • Nuvem de Tags

  • Assine nossa lista:

    Assine nosso Feed RSS
  • Archives

Crontab no último dia do mês

Como agendar um comando na crontab para ser executado no último dia do mês, se existem meses com 28, 30 e 31 dias?

Pesquisando na internet achei a solução proposta pelo Ataliba Teixeira que funciona muito bem por sinal, a qual reproduzo a seguir:

0 8 28-31 * * [ `date -d tomorrow +%e` -eq 1 ] && comando_do_ultimo_dia

Ele verifica se amanhã será dia 1º, se for ele executa o comando_do_ultimo_dia.

O problema é que eu queria fazer isso no Solaris 9 e o comando date no Solaris não tem a riqueza de funcionalidades do date do Linux.

Então criei uma outra solução, acho que mais genérica, que é a seguinte:

0 8 28-31 * * [ `cal|tail -1|awk ‘{print($NF)}’` -eq `date +%e` ] && comando_do_ultimo_dia

Em resumo:

cal lista um calendario do mês atual

tail -1 extrai a última linha deste calendário

awk ‘{print($NF)}’ extrai a última coluna desta linha, que é o último dia do mês

date +%e é o dia atual que é comparado com o último dia do mês atual

se forem iguais será executado o comando após o &&

Adicionar ao Rec 6 Adicionar ao Linkk Adicionar ao Technorati   Enviar por e-mail Enviar por e-mail

2 Responses to “Crontab no último dia do mês”

  1. Executando um comando na crontab no último dia do mês…

    leia mais……

  2. Executando um comando na crontab no último dia do mês…

    leia mais…..

Leave a Reply

CO.CC:Free Domain