Cron Job executando no dia errado

0

No crontab de usuários root em um servidor Centos 7 eu tenho o seguinte:

30 4 1-7 * * test $(date +\%u) -eq 7 && /usr/bin/needs-restarting -r || /usr/sbin/shutdown -r

Deve ser executado todos os dias às 4:30 entre o 1º e o 7º dia do mês, depois testa se o dia da semana é domingo e só então executa o próximo comando para verificar se é necessário reinicializar e, em seguida, reinicialize se for. No entanto, meu servidor foi reinicializado hoje (1º de agosto de 2017), que é uma terça-feira. Alguém pode explicar por quê?

    
por martin81 01.08.2017 / 15:28

1 resposta

2

Em a && b || c , o comando c é executado quando a ou b sai com um valor diferente de 0. Consequentemente, quando test $(date +\%u) -eq 7 for falso, o servidor será reinicializado.

De acordo com o nome /usr/bin/needs-restarting provavelmente retorna 0 quando o servidor precisa de uma reinicialização. Tem certeza de que isso não deve ser a && b && c ?

Senão, tente a && { b || c; }

    
por 01.08.2017 / 15:36