De acordo com este site , sua string significa "Às 11:00 nos dias 24, 25, 26, 27, 28, 29, 30 e 31 de cada mês e a cada qui. ”(ênfase minha). Se o site estiver correto, isso explicaria por que ele foi executado no dia 18.
A entrada de exemplo em man 5 crontab
para ser executada no segundo sábado é:
0 4 8-14 * * test $(date +\%u) -eq 6 && echo "2nd Saturday"
(ou seja, executar todos os dias da segunda semana e verificar o dia da semana como parte do comando) - isso dá suporte à exibição de que o dia da semana é um filtro adicional alternativo, não uma qualificação adicional, embora a página de manual não deixa claro.
Então, no seu caso, eu usaria:
00 11 * * 4 root test $(date -d @$(('date +\%s'+604800)) +\%m) -ne $(date +\%m) && /usr/bin/rsnapshot monthly > /backups/rsnapshot_cron.txt 2>&1
Verifique se o seu date
suporta -d 'next Thursday'
: em caso afirmativo, você pode usar o mais simples:
00 11 * * 4 root test $(date -d 'next Thu' +\%m) -ne $(date +\%m) && /usr/bin/rsnapshot monthly > /backups/rsnapshot_cron.txt 2>&1
Isso é executado toda quinta-feira e verifica se a data de uma semana (604800 segundos) está no mesmo mês: se não, deve ser a última quinta-feira para que o comando de backup seja executado.