Crontab quarta semana do mês na segunda-feira

1. Crontab quarta semana do mês na segunda-feira

Linus Torvalds
backuppc

(usa Debian)

Enviado em 19/10/2021 - 13:44h

Ola,

Estou tentando ajustar crontab para rodar quarta semana do mês na segunda-feira as 19 hrs e sem sucesso.

00 19 * * 1 root /etc/backups/bkp_19.sh


  


2. Re: Crontab quarta semana do mês na segunda-feira

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 19/10/2021 - 14:05h



Eu nunca testei não, mas a principio seria assim
* * * * 1#4  


------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




3. Re: Crontab quarta semana do mês na segunda-feira

Buckminster
Buckminster

(usa Debian)

Enviado em 19/10/2021 - 17:08h

Tente:

0 19 22-28 * 1 [ "$(date '+\%a')" == "Mon" ] && root /etc/backups/bkp_19.sh

https://qastack.com.br/superuser/428807/run-a-cron-job-on-the-first-monday-of-every-month

Ou, mais simples:

0 19 22-28 * 1 root /etc/backups/bkp_19.sh

No /etc/crontab diz que o primeiro campo são os minutos, o segundo são as horas, o terceiro são os dias do mês (1-31), o quarto são os meses (1-12) e o quinto campo é o dia da semana (domingo, segunda, etc).
Sunday (domingo)=0 ou 7, então segunda (monday) é 1, terça é 2, quarta é 3, quinta é 4, sexta é 5, sábado é 6.
E dá para colocar um intervalo num campo só, como por exemplo, 22-28 (que faz parte da última semana de um mês e engloba a segunda feira não importando o mês).

Lembre de dar permissão chmod +x ao arquivo bkp_19.sh.

Veja os man:
https://linux.die.net/man/5/crontab


________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.



4. Re: Crontab quarta semana do mês na segunda-feira

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2021 - 21:37h

Boa noite,
Segue sugestão:
As segundas ocorrem do dia 17 ao 23:

for m in {1..12};do 
cal -m${m} 2021|awk -v M=$m 'NR==6{system("date -d 2021-"M"-"$2" +%x-%A")}';
done

18/01/2021-segunda
22/02/2021-segunda
22/03/2021-segunda
19/04/2021-segunda
17/05/2021-segunda
21/06/2021-segunda
19/07/2021-segunda
23/08/2021-segunda
20/09/2021-segunda
18/10/2021-segunda
22/11/2021-segunda
20/12/2021-segunda

Simplificando:
for m in {1..12};do cal -m${m} 2023|awk 'NR==6{print $2}';done|sort -u|xargs

Vários Anos:
for a in {1990..2021};do for m in {1..12};do cal -m${m} $a|awk 'NR==6{print $2}';done;done|sort -u

Logo:
0 19 17-23 * * (($(date +%u) == 1)) && executa_o_script 



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts