Jusqu'à peu j'utilisais des scripts maison pour suivre les mises à jour de sécurité à faire sur les serveurs Debian que j'administre, scripts shell qui à grand coup de sed, grep, gawk sur les sorties de apt-get update / upgrade permet de connaître les mises à jour à faire. Une fois de plus Debian à des outils internes pour faire cela beaucoup mieux. Utilisant aussi Debian sur mon desktop je me suis penché sur la méthode mise en oeuvre qui permet à mon gestionnaire de bureau de signaler dans une popup les màj à faire après chaque action apt, je suis tombé sur le paquet update-notifier-common qui contient tout ce qu'il faut pour refactoriser mes sondes Nagios.

La commande apt-chek (qui est un script python) permet de savoir tout de go si il existe des mises à jour à faire :

rodo@arz: $ /usr/lib/update-notifier/apt-check
110;57

donne une sortie facilement scriptable qui indique ici qu'il y a 110 mises à jour disponibles dont 57 mises à jour de sécurité (tests effectués sur mon desktop, n'ayez craintes)

rodo@arz: $ /usr/lib/update-notifier/apt-check --human-readable
110 packages can be updated.
57 updates are security updates.

donne une sortie plus compatible avec le genre humain.

Enfin l'option -p elle va afficher la liste des noms de paquets à mettre à jour. Pour parfaire le script on souhaiterait avoir une option qui permette de n'afficher que les noms de paquets issus de security à mettre à jour, gageons que cela soit dans une future release.

Il ne reste plus qu'à utiliser cette commande dans une sonde nagios telle que celle décrite dans ce billet

Pour conclure il me reste à dire que apt-check se base sur la librairire python apt_pkg disponible dans python-apt que je vous invite à découvrir si vous souhaitez manipuler les commandes apt à partir de python.

MàJ : après ma réflexion sur une option supplémentaire j'ai envoyé un patch au mainteneur du paquet