date - como obter o próximo dia da semana (ignore os finais de semana)

0

Estou configurando uma tarefa do cron para suspender e ativar um servidor em horários certificados.

Estou usando dois comandos. Um para ser executado de segunda a quinta:

rtcwake -m mem -t $(date +%s -d "08:00")

E outro para ser executado às sextas-feiras:

rtcwake -m mem -t $(date +%s -d "monday 08:00")

Eu me pergunto se é possível tornar essa separação desnecessária. Se date pudesse entender uma declaração como next weekday 08:00 , isso simplificaria muito as coisas.

Não consegui descobrir se isso é realmente possível ou qual é a sintaxe que devo usar.

Eu basicamente quero evitar que meu servidor acorde nos sábados e domingos.

    
por unfa 09.08.2018 / 11:39

1 resposta

0

Você pode querer tentar

date +%s -d"$(( ( $(date +%w)==5 )?3:1 ))days 8:00"

EDIT: para responder ao seu comentário: date +%w rende o dia da semana, que então é avaliado por um "operador condicional" ( expr?expr:expr ): se expr1 for avaliado como VERDADEIRO, avaliar e usar expr2, senão expr3. Então, na sexta-feira, temos o dia 5 e executamos date +%s -d"3days 8:00 , nos outros dias date +%s -d"1days 8:00 .

    
por 09.08.2018 / 11:54

Tags