42 votes

Statut des mises à niveau automatisées ?

Est-ce que quelqu'un sait s'il est possible de déterminer le statut d'une mise à jour non assistée? Est-il possible de savoir quels paquets sont en train d'être installés ou à quel stade nous en sommes dans le processus?

J'apprécie l'avantage des mises à jour non assistées, mais elles peuvent être vraiment ennuyeuses quand vous avez un système qui a été éteint pendant quelques mois, et que vous voulez installer une application, ou quand elles consomment des ressources CPU sur des machines qui n'en ont pas beaucoup à la base.

Je ne cherche pas simplement à arrêter les mises à jour non assistées. Je sais comment faire cela. Je veux qu'elles s'exécutent. Je veux juste savoir comment je peux savoir ce qui se passe réellement et à quelle phase elles en sont.

50voto

Mattio Points 817

Sur les systèmes 16.04 et plus récents, les mises à jour automatiques s'exécutent quotidiennement à un moment aléatoire.

Comment savoir quand les mises à jour automatiques vont s'exécuter aujourd'hui:

L'heure aléatoire est définie par une tâche cron (/etc/cron.daily/apt.compat), et vous pouvez lire l'heure aléatoire pour aujourd'hui en interrogeant systemd:

$ systemctl list-timers apt-daily.timer
NEXT                         LEFT     LAST                         PASSED      UNIT            ACTIVATES
Tue 2017-07-11 01:53:29 CDT  13h left Mon 2017-07-10 11:22:40 CDT  1h 9min ago apt-daily.timer apt-daily.service

Dans ce cas, vous pouvez voir que les mises à jour automatiques ont eu lieu il y a 1 heure et 9 minutes.

Comment savoir si les mises à jour automatiques sont toujours en cours d'exécution:

Une façon facile est de vérifier les fichiers de timestamp des différents composants apt:

$ ls -l /var/lib/apt/periodic/
total 0
-rw-r--r-- 1 root root 0 Jul 10 11:24 unattended-upgrades-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:23 update-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 update-success-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 upgrade-stamp

Ici, vous pouvez voir que les mises à jour automatiques sont juste un autre composant apt. apt place le timestamp ici indépendamment de la manière dont l'apt a été lancé.

En mettant les données ensemble, vous pouvez voir que le timer a démarré apt (u-u) à 11h22. Il a exécuté une mise à jour qui s'est terminée à 11h23, puis une mise à niveau qui s'est terminée à 11h24. Enfin, vous pouvez voir qu'apt a considéré la mise à niveau comme un succès (pas d'erreur ou autre échec).

De toute évidence, si vous voyez un timer récent sans un timestamp de terminaison correspondant, alors vous voudrez peut-être vérifier avec ps pour voir si apt est toujours en cours d'exécution.

Comment savoir à quelle étape apt est en train de s'exécuter actuellement:

Une façon facile est de vérifier le fichier journal de u-u.

$ less /var/log/unattended-upgrades/unattended-upgrades.log
2017-07-10 11:23:00,348 INFO Packages that will be upgraded: apport apport-gtk libpoppler-glib8 libpoppler-qt5-1 libpoppler64 poppler-utils python3-apport python3-problem-report
2017-07-10 11:23:00,349 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
2017-07-10 11:24:20,419 INFO All upgrades installed

Ici, vous pouvez voir le processus quotidien normal, y compris les lignes 'démarré' et 'terminé', ainsi que la liste des paquets qui allaient être mis à niveau.

Si la liste des paquets n'est pas encore enregistrée, alors apt peut être interrompu en toute sécurité. Une fois la liste des paquets enregistrée, NE PAS interrompre apt.

Étant donné que vous disposez d'un environnement à ressources limitées, sachez qu'apt peut être configuré de nombreuses manières pour fonctionner de manière fiable et discrète avec différents temps d'exécution, niveaux de priorité, limites de bande passante et de nombreux autres paramètres utiles.

4voto

Ben Points 51

J'utilise cela pour obtenir le nombre total de mises à jour en attente

apt list --upgradeable | wc -l

0voto

Johnny Baloney Points 136

Pour voir si la mise à niveau est en cours :

watch 'ps aux | grep unattended | grep -v "grep\|shutdown"'

Pour voir ce qu'il fait :

tail -f /var/log/unattended-upgrades/unattended-upgrades.log

Pour voir quels paquets sont en cours de mise à niveau :

tail -f /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

Aperçu des journaux :

  • /var/log/unattended-upgrades/unattended-upgrades.log - Notez les horodatages et la durée écoulée avant que la liste des paquets ne soit prête, ceci est sur un système que je n'ai pas utilisé depuis des mois.

    2022-03-24 20:32:54,042 INFO Starting unattended upgrades script 2022-03-24 20:32:54,042 INFO Allowed origins are: o=Ubuntu,a=bionic, o=Ubuntu,a=bionic-security, o=UbuntuESM,a=bionic 2022-03-24 21:11:31,321 INFO Packages that will be upgraded: accountsservice apport apport-gtk apt apt-utils aptdaemon ...

  • /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

    Log started: 2022-03-24 21:17:49 (Reading database ... 151616 files and directories currently installed.) Preparing to unpack .../libbluetooth3_5.48-0ubuntu3.8_amd64.deb ... Unpacking libbluetooth3:amd64 (5.48-0ubuntu3.8) over (5.48-0ubuntu3.3) ... Setting up libbluetooth3:amd64 (5.48-0ubuntu3.8) ... Processing triggers for libc-bin (2.27-3ubuntu1) ... Log ended: 2022-03-24 21:17:51 ...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X