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; }