Pular para o conteúdo

Crontab para o 5º dia útil

Responder tópico
  • Denunciar
  • Indicar

1. Crontab para o 5º dia útil

Enviado em 13/11/2012 - 23:53h

Senhor Crontab, não me decepcione...

Como faço pra rodar um script no 5º dia útil de todo mês pelo crontab?

Responder tópico

2. Re: Crontab para o 5º dia útil

Enviado em 14/11/2012 - 00:27h

agende um script para rodar todos os dias

e nele faça a regra para para testar se é o quinto dia útil, se for esse script chama o script principal

e boa sorte para descobrir o quinto dia útil no pais dos feriados.

3. Re: Crontab para o 5º dia útil

Enviado em 14/11/2012 - 16:13h

estava agora lendo um artigo sobre POG e lembrei desse post nesta parte


Algoritmo "Pô, até ontem tava funcionando!!!"
Todos já ouviram isso nos ambientes de teste, implantação e manutenção de software: "Pô, não tô entendendo, até ontem tava funcionando!!!". Eis a explicação:

//Criado e implementado por Mister MM - todos os direitos reservados®...

function TfrmCalcPPP.RetornarUltimoDiaMes(Data1: TDateTime): TDateTime;
var
Dia1, Mes1, Ano1: Word;
begin
Result := 0;
DecodeDate (Data1, Ano1, Mes1, Dia1);
// Mês fevereiro
// Ano Bissexto
if (Ano1 = 2008) or (Ano1 = 2012) or (Ano1 = 2016) or (Ano1 = 2020) or (Ano1 = 2024) then
begin
if (Mes1 = 2) then
Result := EncodeDate (Ano1, Mes1, 29);
end;
// Demais Anos
if (Ano1 <> 2008) and (Ano1 <> 2012) and (Ano1 <> 2016) and (Ano1 <> 2020) and (Ano1 =2024) then
begin
if (Mes1 = 2) then
Result := EncodeDate (Ano1, Mes1, 2);
end;

// Meses de 30 dias
if (Mes1 = 4) or (Mes1 = 6 ) or (Mes1 = 9 ) or (Mes1 = 11 )then
Result := EncodeDate (Ano1, Mes1, 30);

// Meses de 31 dias
if (Mes1 = 1) or (Mes1 = 3 ) or (Mes1 = 5 ) or (Mes1 = 7 ) or (Mes1 = 8 ) or (Mes1 = 10 ) or (Mes1 = 12 )then
Result := EncodeDate (Ano1, Mes1, 31);
end;

fonte: http://desciclopedia.ws/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Gambiarras

4. Re: Crontab para o 5º dia útil

Enviado em 14/11/2012 - 21:14h

Ah não acredito que o crontab não tenha um parâmetro pra fazer isso...

Vou ter que fazer um script =/

5. Re: Crontab para o 5º dia útil

Enviado em 14/11/2012 - 22:03h

samusrt escreveu:

Ah não acredito que o crontab não tenha um parâmetro pra fazer isso...

Vou ter que fazer um script =/
Como falado o dia útil varia de lugar para lugar então só com um script agora se for por exemplo a todo dia 5 de todos os meses:


30 8 5 * * /usr/local/bin/façaalgo.sh
A ordem é a seguinte 30= minutos 8= horas e 5= dia do mês que pode ser incrementado com , caso precise que rode tipo dia 5 e 20:
# 30 8 5,20 * * comando

ou ainda selecionar os meses que quer com :

# 30 8 5,20 1-12 * comando #(1-12 de janeiro a dezembro, 1,5 somente janeiro e maio e assim vai)

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder