Per capire se cron avvia un job su Debian con systemd, leggi prima il journal. Per un file cron.log dedicato serve anche rsyslog.
1. Controlla il servizio
systemctl status cron
sudo journalctl -u cron.service --since todaySe cron non è installato: sudo apt install cron, poi sudo systemctl enable --now cron. I messaggi di avvio non includono necessariamente stdout e stderr del comando eseguito.
2. Attiva un file di log dedicato
Se ti serve, installa rsyslog con sudo apt install rsyslog. Controlla le regole cron già presenti in /etc/rsyslog.conf e /etc/rsyslog.d. In assenza di una regola equivalente crea /etc/rsyslog.d/30-cron.conf con:
cron.* /var/log/cron.logsudo rsyslogd -N1 && sudo systemctl restart rsyslog
logger -p cron.notice "prova-log-cron"
sudo tail /var/log/cron.logDevi vedere prova-log-cron. Questo verifica l’instradamento del log, non l’esecuzione dello scheduler.
3. Prova un job reale
Con crontab -e aggiungi temporaneamente:
* * * * * /usr/bin/date >> "$HOME/cron-prova.log" 2>&1Dopo uno o due minuti, il file cron-prova.log nella tua home deve contenere una data. Rimuovi subito la riga di prova dal crontab. Se vuoi conservare cron.log, aggiungilo alla rotazione dei log: non lasciarlo crescere indefinitamente.