web-dev-qa-db-fra.com

Ubuntu 16.04: Les mises à niveau sans surveillance s'exécutent à des moments aléatoires

J'ai configuré des mises à niveau sans surveillance pour installer des packages de sécurité et en informer par courrier électronique le cas échéant.

J'ai remarqué que l'installation se produit à des moments très aléatoires. Je sais que les dernières versions ont ajouté un délai aléatoire pouvant aller jusqu'à 30 minutes à compter du temps d'exécution cron.daily.

Cependant, les retards que je subis sont bien plus importants que cela. Je vois des mises à niveau sans surveillance s'exécutant à 9h, 15h, 12h ... Les journaux montrent la même chose, donc ce n'est pas seulement la livraison du courrier électronique qui prend plus de temps.

La tâche de mises à niveau sans surveillance est la première de cron.daily, ce qui signifie qu'il n'y a aucune tâche précédente avec des temps d'exécution énormes.

Quelqu'un a vécu une chose semblable?

11
daniel f.

Après le débogage, j'ai trouvé la solution.

La cause fondamentale de ce problème réside dans le fait que sous Ubuntu 16.04 et les mises à jour plus récentes et sans surveillance, on utilise systemd - pas cron - pour planifier les mises à jour avec un énorme délai aléatoire:

/lib/systemd/system/apt-daily.timer est configuré avec

OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h

Cela signifie qu’il fonctionnera deux fois par jour, à 6 heures et à 18 heures, avec un retard aléatoire pouvant aller jusqu’à 12 heures. Comme cela n'est pas toujours acceptable pour les environnements de production, j'ai dû remplacer ces paramètres.

Afin de garder les fichiers de configuration du paquet intacts, j'ai défini mon remplacement dans /etc/systemd/system/apt-daily.timer.d/override.conf (je devais créer le dossier et le fichier).

Là je mis

[Timer]
OnCalendar=
OnCalendar=06:00
RandomizedDelaySec=1h

d'avoir des mises à niveau sans surveillance exécutées à 6h00 plus un délai aléatoire pouvant aller jusqu'à une heure.

Ensuite, j'ai simplement redémarré le chronomètre avec systemctl restart apt-daily.timer (éventuellement besoin de recharger le démon).

Les mises à jour sans assistance fonctionnent à nouveau à des moments prévisibles!

Edit: Il semblerait que pour Ubuntu 18.04, les choses aient un peu changé. Le remplacement devrait maintenant être stocké dans /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf et ressembler à ceci:

[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=1h
16
daniel f.

La documentation officielle de Debian sur https://wiki.debian.org/UnattendedUpgrades contient actuellement une erreur qui induit en erreur beaucoup de gens. Il affirme que vous pouvez remplacer le temps de mise à niveau en créant un fichier appelé

/etc/systemd/system/apt-daily-upgrade.d/override.conf

Cependant, le chemin correct est

/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
2
Rolf Wojtech

J'ai essayé la solution de Daniel mais la mise à niveau s'est toujours déroulée au mauvais moment. Il s'est avéré qu'il y a deux substitutions systemd nécessaires:

Utilisé pour les téléchargements

/lib/systemd/system/apt-daily.timer - substitue avec /etc/systemd/system/apt-daily.timer.d/override.conf

Utilisé pour la mise à niveau

/lib/systemd/system/apt-daily-upgrade.timer - substitue avec /etc/systemd/system/apt-daily-upgrade.timer.d/override.conf

1
Niels Rask