Как получить количество доступных обновлений в системе Ubuntu как обычный пользователь

8

Мне нужно это для простого сценария мониторинга, который я не хочу запускать от имени root ...

Джо Кандаба
источник
1
всегда есть ограниченная команда nopasswd sudo
Майкл Лоуман
Спасибо всем вам за множество ответов. Попробовав несколько ваших предложений и немного покопавшись, мне кажется, что решение, которое требует наименьшего количества зависимостей и является наиболее безопасным, просто анализирует / etc / motd - однако это не кажется мне очень элегантным :)
Джо Кандаба

Ответы:

10

Количество ожидающих обновлений безопасности можно узнать с помощью:

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

а количество ожидающих регулярных обновлений можно узнать с помощью:

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

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

кванты
источник
намного элегантнее моего :)
anthonysomerset
Спасибо за ответ, однако, как указал jldugger, это (безголовый) сервер, поэтому установка> 240 пакетов, включая множество графических элементов, просто для того, чтобы получить количество обновлений apt, на самом деле не вариант.
Джо Кандаба
Это обеспечивается пакетом update-notifier-common. Я не думаю, что это имеет какие-либо графические зависимости.
sourcejedi
1

Использование sudo - ваш ответ. Скорее всего, вам потребуется добавить пользователя, с которым вы хотите запустить скрипт, в файл sudoers и, возможно, с флагом nopasswd, чтобы он не запрашивал ваш пароль при каждом запуске скрипта, для получения дополнительной информации о sudo попробуйте смотрите здесь: https://help.ubuntu.com/community/Sudoers

anthonysomerset
источник
Я бы действительно предпочел, чтобы на сервере не выполнялось ничего, работающего с правами root.
Джо Кандаба
он запускается с правами суперпользователя достаточно долго, чтобы выполнить команду, и вы можете ограничить ее конкретной командой, необходимой для получения обновлений, что нейтрализует любую возможную угрозу безопасности
anthonysomerset
1

Ubuntu имеет много упакованных плагинов для nagios, включая удобный check_apt, специальную программу на Си. Это немного лучше, чем update-notifier в том, что его зависимости меньше; если вы заинтересованы в мониторинге серверов, вы, вероятно, уже установили его! Вывод выглядит следующим образом (если вам это не нравится, кажется, тривиально, чтобы программа распечатала то, что вам нужно):

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

Если оповещение nagios не является вашим предпочтением, вы можете сделать то, что я делаю, и установить apticron, который будет отправлять вам уведомления по электронной почте о доступных обновлениях в системе.

jldugger
источник
Спасибо! Apticron не вариант, так как мне нужна информация для моего собственного скрипта, чтобы электронное письмо не помогло. По той же причине, по которой я не использую nagios, однако вы, похоже, подразумеваете, что «check_apt» может использоваться независимо?
Джо Кандаба
@Joe, все плагины nagios могут быть запущены независимо друг от друга - это большая часть того, что делает nagios :)
Michael Lowman
Ага. Это просто программа, установленная в / usr / lib / nagios / check_apt. Работает просто отлично, как любой старый пользователь.
jldugger