Dopo aver eseguito il debug, ho trovato la soluzione.
La causa principale di questo problema risiede nel fatto che in Ubuntu 16.04 e versioni successive, gli aggiornamenti non presidiati utilizzano systemd - non cron - per pianificare gli aggiornamenti con un enorme ritardo randomizzato:
/lib/systemd/system/apt-daily.timer
è configurato con
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Ciò significa che verrà eseguito due volte al giorno, alle 6:00 e alle 18:00, con un ritardo casuale fino a 12 ore. Poiché ciò non è sempre accettabile per gli ambienti di produzione, ho dovuto ignorare queste impostazioni.
Per mantenere intatti i file di configurazione del pacchetto, ho definito la mia sostituzione in /etc/systemd/system/apt-daily.timer.d/override.conf
( Aggiornamento : leggere la modifica in fondo a questa risposta per ulteriori informazioni su nome file e posizione, poiché sembra essere leggermente soggetta a modifiche).
Lì ho impostato
[Timer]
OnCalendar=
OnCalendar=06:00
RandomizedDelaySec=1h
per far eseguire gli aggiornamenti non presidiati alle 6:00 più un ritardo casuale fino a un'ora.
Quindi ho semplicemente riavviato il timer con systemctl restart apt-daily.timer
(eventualmente è necessario ricaricare il demone).
Gli aggiornamenti automatici ora vengono di nuovo eseguiti in tempi prevedibili!
Modifica : Sembrerebbe che per Ubuntu 18.04 le cose siano cambiate un po '. L'override ora dovrebbe essere archiviato /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
e simile a questo:
[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=1h
@PerlDuck ha menzionato un modo per creare un file di sostituzione con il nome e la posizione corretti in un commento qui sotto. Invece di creare manualmente un file, considera l'esecuzionesudo systemctl edit apt-daily.timer