buenas, povo.
preciso que um job ocorra no último dia de cada mês mas gostaria de NÃO ter que definir isso na unha (depois vemos isso - rs), e não encontro nada apropriado seja no man, seja no google, já revirei tudo o que podia.
pos bem: preciso que o job seja ativado no último dia do mês; o crontab oferece os dias 1-31 de cada mês MAS.. temos dias com 30 dias e também fevereiro, que ora tem 28 ora 29 dias (mas não 30, nem 31).
eu NÃO gostaria de fazer no dedão a separação de meses, ou seja, olhar na folhinha e fazer uma linha para os meses de 30 dias, outra para os meses de 31 e mais uma para fevereiro de 28 dias e outra para anos bissextos (fevereiro com 29 dias).
"acho" que é a única alternativa - considerando-se apenas o manual - mas de repente algum dos colegas resolveu problema semelhante de modo mais elegante. Então a pergunta: há como fazer-se linha única para êsses jobs mensais?
grato,
2011/5/2 irado furioso com tudo irado@bsd.com.br:
preciso que um job ocorra no último dia de cada mês mas gostaria de NÃO ter que definir isso na unha (depois vemos isso - rs), e não encontro nada apropriado seja no man, seja no google, já revirei tudo o que podia.
Pelo que pesquisei não existe uma forma "nativa" do tipo @monthly pra fazer isso. No linuxquestions.org tem uma thread onde os caras colocam o script pra rodar dos dias 28 à 31 e testam dentro do script se é o último dia do mês, algo como:
if [ "$(date --date "`date +%m/01/%Y` yesterday" +%d/%m/%Y)" == $(date +%d/%m/%Y) ]; then echo "Último dia do mês" fi
acredito que a unica forma seria no crontab mesmo..
Em 2 de maio de 2011 09:58, thiagoc root@thiagoc.net escreveu:
2011/5/2 irado furioso com tudo irado@bsd.com.br:
preciso que um job ocorra no último dia de cada mês mas gostaria de NÃO
ter
que definir isso na unha (depois vemos isso - rs), e não encontro nada apropriado seja no man, seja no google, já revirei tudo o que podia.
Pelo que pesquisei não existe uma forma "nativa" do tipo @monthly pra fazer isso. No linuxquestions.org tem uma thread onde os caras colocam o script pra rodar dos dias 28 à 31 e testam dentro do script se é o último dia do mês, algo como:
if [ "$(date --date "`date +%m/01/%Y` yesterday" +%d/%m/%Y)" == $(date +%d/%m/%Y) ]; then echo "Último dia do mês" fi
-- thiagoc
"O povo não deveria temer o governo. O governo é quem deveria temer o povo." V de Vingança _______________________________________________ CentOS-pt-br mailing list CentOS-pt-br@centos.org http://lists.centos.org/mailman/listinfo/centos-pt-br
'L' stands for "last". When used in the day-of-week field, it allows you to specify constructs such as "the last Friday" of a given month. In the day-of-month field, it specifies the last day of the month.
Retirado do manual do cron
Field name
Mandatory?
Allowed values
Allowed special characters
Minutes
Yes
0-59
* / , -
Hours
Yes
0-23
* / , -
Day of month
Yes
1-31
* / , - ? L W
Month
Yes
1-12 or JAN-DEC
* / , -
Day of week
Yes
0-6 or SUN-SAT
* / , - ? L #
Year
No
19702099
* / , -
_____
De: centos-pt-br-bounces@centos.org [mailto:centos-pt-br-bounces@centos.org] Em nome de GRIFFO Consultoria & Treinamentos - Rodrigo Griffo Enviada em: segunda-feira, 2 de maio de 2011 10:10 Para: Portuguese (Brazilian) CentOS mailing list Assunto: Re: [CentOS-pt-br] crontab fevereiro (e outros meses)
acredito que a unica forma seria no crontab mesmo..
Em 2 de maio de 2011 09:58, thiagoc root@thiagoc.net escreveu:
2011/5/2 irado furioso com tudo irado@bsd.com.br:
preciso que um job ocorra no último dia de cada mês mas gostaria de NÃO
ter
que definir isso na unha (depois vemos isso - rs), e não encontro nada apropriado seja no man, seja no google, já revirei tudo o que podia.
Pelo que pesquisei não existe uma forma "nativa" do tipo @monthly pra fazer isso. No linuxquestions.org tem uma thread onde os caras colocam o script pra rodar dos dias 28 à 31 e testam dentro do script se é o último dia do mês, algo como:
if [ "$(date --date "`date +%m/01/%Y` yesterday" +%d/%m/%Y)" == $(date +%d/%m/%Y) ]; then echo "Último dia do mês" fi
-- thiagoc
"O povo não deveria temer o governo. O governo é quem deveria temer o povo." V de Vingança _______________________________________________ CentOS-pt-br mailing list CentOS-pt-br@centos.org http://lists.centos.org/mailman/listinfo/centos-pt-br
2011/5/2 Toledo, Luis Carlos lscrlstld@gmail.com
'L' stands for "last". When used in the day-of-week field, it allows you to specify constructs such as "the last Friday" of a given month. In the day-of-month field, it specifies the last day of the month.
Retirado do manual do cron
Estranho, não achei isso no man do cron padrão do CentOS (vixie-cron).
$ rpm -qa | grep cron crontabs-1.10-8 vixie-cron-4.1-77.el5_4.1
-- thiagoc
"O povo não deveria temer o governo. O governo é quem deveria temer o povo." V de Vingança
2011/5/2 thiagoc root@thiagoc.net
2011/5/2 Toledo, Luis Carlos lscrlstld@gmail.com
'L' stands for "last". When used in the day-of-week field, it allows you
to specify constructs such as "the last Friday" of a given month. In the day-of-month field, it specifies the last day of the month.
Retirado do manual do cron
Estranho, não achei isso no man do cron padrão do CentOS (vixie-cron).
aqui também não encontrei :|
Nessas horas me dá um gelo na barriga...
0 23 28-31 * * [ "$(/bin/date +%d -d tomorrow)" = "01" ] && /seu/script.sh
Assim vai executar o script entre os dias 28 e 31 desde que amanhã seja dia 01.
_____
De: centos-pt-br-bounces@centos.org [mailto:centos-pt-br-bounces@centos.org] Em nome de irado furioso com tudo Enviada em: segunda-feira, 2 de maio de 2011 11:00 Para: Portuguese (Brazilian) CentOS mailing list Assunto: Re: [CentOS-pt-br] RES: crontab fevereiro (e outros meses)
2011/5/2 thiagoc root@thiagoc.net
2011/5/2 Toledo, Luis Carlos lscrlstld@gmail.com
'L' stands for "last". When used in the day-of-week field, it allows you
to specify constructs such as "the last Friday" of a given month. In the day-of-month field, it specifies the last day of the month.
Retirado do manual do cron
Estranho, não achei isso no man do cron padrão do CentOS (vixie-cron).
aqui também não encontrei :|
34 11 L * ? root touch /ultimodia.txt
fiz esse teste, mudei a data do sistema para dia 31 desse mes... e não retornou resultado, alguem tem alguma dica?
Atenciosamente, *Gabriel Ricardo.* *Skype:* gricardo87 *MSN:* gricardo87@gmail.com *Twitter:* twitter.com/gricardo87 *Blog:* www.tinotapa.com.br
Em 2 de maio de 2011 11:23, Toledo, Luis Carlos lscrlstld@gmail.comescreveu:
Nessas horas me dá um “gelo na barriga”...
0 23 28-31 * * [ "$(/bin/date +%d -d tomorrow)" = "01" ] && /seu/script.sh
Assim vai executar o script entre os dias 28 e 31 desde que amanhã seja dia 01.
*De:* centos-pt-br-bounces@centos.org [mailto: centos-pt-br-bounces@centos.org] *Em nome de *irado furioso com tudo *Enviada em:* segunda-feira, 2 de maio de 2011 11:00
*Para:* Portuguese (Brazilian) CentOS mailing list *Assunto:* Re: [CentOS-pt-br] RES: crontab fevereiro (e outros meses)
2011/5/2 thiagoc root@thiagoc.net
2011/5/2 Toledo, Luis Carlos lscrlstld@gmail.com
'L' stands for "last". When used in the day-of-week field, it allows you
to specify constructs such as "the last Friday" of a given month. In the day-of-month field, it specifies the last day of the month.
Retirado do manual do cron
Estranho, não achei isso no man do cron padrão do CentOS (vixie-cron).
aqui também não encontrei :|
--
saudações, irado furioso com tudo mais crimes são cometidos em nome das religiões do que em nome do ateismo.
CentOS-pt-br mailing list CentOS-pt-br@centos.org http://lists.centos.org/mailman/listinfo/centos-pt-br
2011/5/2 thiagoc root@thiagoc.net:
2011/5/2 irado furioso com tudo irado@bsd.com.br:
preciso que um job ocorra no último dia de cada mês mas gostaria de NÃO ter que definir isso na unha (depois vemos isso - rs), e não encontro nada apropriado seja no man, seja no google, já revirei tudo o que podia.
Pelo que pesquisei não existe uma forma "nativa" do tipo @monthly pra fazer isso. No linuxquestions.org tem uma thread onde os caras colocam o script pra rodar dos dias 28 à 31 e testam dentro do script se é o último dia do mês, algo como:
if [ "$(date --date "`date +%m/01/%Y` yesterday" +%d/%m/%Y)" == $(date +%d/%m/%Y) ]; then echo "Último dia do mês" fi
Outra forma de fazer (mais simples):
if [ $(date --date tomorrow +%d) -eq 1 ]; then echo "Último dia do mês" fi
discuss-pt-br@lists.centos.org