Nach dem Debuggen fand ich die Lösung.
Die Hauptursache für dieses Problem liegt in der Tatsache, dass unbeaufsichtigte Upgrades unter Ubuntu 16.04 und neuer systemd - nicht cron - verwenden, um die Updates mit einer großen zufälligen Verzögerung zu planen:
/lib/systemd/system/apt-daily.timer
ist konfiguriert mit
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Dies bedeutet, dass es zweimal täglich um 6:00 und 18:00 Uhr mit einer zufälligen Verzögerung von bis zu 12 Stunden ausgeführt wird. Da dies für Produktionsumgebungen nicht immer akzeptabel ist, musste ich diese Einstellungen überschreiben.
Um die Paketkonfigurationsdateien unberührt zu lassen, habe ich meine Überschreibung in definiert /etc/systemd/system/apt-daily.timer.d/override.conf
( Update : Bitte lesen Sie die Bearbeitung am Ende dieser Antwort, um weitere Informationen zu Dateiname und Speicherort zu erhalten, da sich diese geringfügig ändern können).
Da habe ich gesetzt
[Timer]
OnCalendar=
OnCalendar=06:00
RandomizedDelaySec=1h
unbeaufsichtigte Upgrades werden um 6:00 Uhr plus einer zufälligen Verzögerung von bis zu einer Stunde ausgeführt.
Dann habe ich einfach den Timer mit neu gestartet systemctl restart apt-daily.timer
(muss eventuell den Daemon neu laden).
Unbeaufsichtigte Updates werden jetzt wieder zu vorhersehbaren Zeiten ausgeführt!
Edit : Es scheint, als ob sich für Ubuntu 18.04 etwas geändert hat. Die Überschreibung sollte jetzt gespeichert sein /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
und folgendermaßen aussehen:
[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=1h
@PerlDuck hat in einem Kommentar unten eine Möglichkeit zum Erstellen einer Überschreibungsdatei mit dem richtigen Namen und Speicherort erwähnt. Anstatt eine Datei manuell zu erstellen, sollten Sie sie ausführensudo systemctl edit apt-daily.timer