Comment obtenir le nombre de mises à jour disponibles sur un système Ubuntu en tant qu'utilisateur normal

8

J'en ai besoin pour un simple script de surveillance que je ne veux pas exécuter en tant que root ...

Joe Kandaba
la source
1
il y a toujours nopasswd sudo restreint aux commandes
Michael Lowman
Merci à tous pour les nombreuses réponses. Après avoir essayé quelques-unes de vos suggestions et creusé un peu plus, il me semble que la solution qui nécessite le moins de dépendances et qui est la plus sécurisée est simplement l'analyse de / etc / motd - mais cela ne me semble pas très élégant :)
Joe Kandaba

Réponses:

10

Le nombre de mises à jour de sécurité en attente peut être trouvé à l'aide de:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 1

et le nombre de mises à jour régulières en attente peut être trouvé en utilisant:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 2

/superuser/199869/check-number-of-pending-security-updates-in-ubuntu

quanta
la source
beaucoup plus élégant que le mien :)
anthonysomerset
Merci pour la réponse, cependant, comme l'a souligné jldugger, il s'agit d'un serveur (sans tête), donc installer> 240 paquets, y compris beaucoup de trucs gui juste pour obtenir le nombre de mises à jour apt, n'est vraiment pas une option.
Joe Kandaba
Il est fourni par le package update-notifier-common. Je ne pense pas qu'il ait de dépendances gui.
sourcejedi
1

en utilisant sudo est votre réponse, vous devrez probablement ajouter l'utilisateur auquel vous souhaitez exécuter le script au fichier sudoers et probablement avec l'indicateur nopasswd afin qu'il ne demande pas votre mot de passe à chaque exécution du script, pour plus d'informations sur sudo, essayez jetez un oeil ici: https://help.ubuntu.com/community/Sudoers

anthonysomerset
la source
Je préférerais vraiment que rien ne soit exécuté en tant que root sur un serveur qui ne doit pas absolument le faire.
Joe Kandaba
il s'exécute en tant que root assez longtemps pour exécuter la commande, et vous pouvez le limiter à la commande spécifique nécessaire pour obtenir des mises à jour, neutralisant ainsi toute menace de sécurité possible
anthonysomerset
1

Ubuntu possède de nombreux plugins Nagios emballés, y compris le check_apt pratique, un programme C personnalisé. C'est légèrement mieux que update-notifier en ce que ses dépendances sont plus petites; si vous souhaitez surveiller des serveurs, vous l'avez probablement déjà installé! La sortie ressemble à ceci (si vous ne l'aimez pas, il semble trivial de bifurquer le programme pour imprimer ce dont vous avez besoin):

APT OK: 0 packages available for upgrade (0 critical updates).

Si l'alerte nagios n'est pas votre préférence, vous pouvez faire ce que je fais et installer apticron, qui vous enverra des notifications par e-mail sur les mises à jour disponibles sur un système.

jldugger
la source
Merci! Apticron n'est pas une option car j'ai besoin des informations pour mon propre script, donc un e-mail ne fait pas l'affaire. Pour la même raison, je n'utilise pas nagios, mais votre réponse semble impliquer que "check_apt" peut être utilisé indépendamment?
Joe Kandaba
@Joe tous les plugins nagios peuvent être exécutés indépendamment - c'est la plupart de ce que fait nagios :)
Michael Lowman
Oui. C'est juste un programme installé dans / usr / lib / nagios / check_apt. Fonctionne très bien comme tout ancien utilisateur.
jldugger