Как найти количество пакетов, бывших нужных в обновлении из командной строки?

Я работаю над некоторой автоматизацией системного администратора с помощью матрицы, и я хотел бы смочь контролировать количество пакетов, для которых нужно обновление на данной машине. Это - та же информация, которую я вижу, когда я сначала вхожу в систему машины, т.е. этой части:

35 packages can be updated.
22 updates are security updates.

Есть ли команда, которую я могу выполнить (предпочтительно без sudo) это дает просто ту информацию?

Я посмотрел на привязку способного Python, но у них, кажется, есть высокая кривая обучения, и они также, кажется, переезжаются много - я хотел бы что-то, что будет работать по крайней мере еще ясное, не будучи должен сделать разные вещи на различных версиях Ubuntu.

34
задан 5 June 2014 в 13:16

4 ответа

Чтобы получить этот вывод, вы можете использовать команду

sudo /usr/lib/update-notifier/update-motd-updates-available

или, если вы не хотите использовать sudo ,

cat /var/lib/update-notifier/updates-available

Объяснение

приложение входа показывает результат, найденный в файле / etc / motd , который представляет собой символическую ссылку на / var / run / motd .

Этот последний файл обновляется службой mount-varrun (см. /etc/init/mounted-varrun.conf ), вызывая все сценарии в /etc/update-motd.d/ , и, в частности,

/etc/update-motd.d/90-updates-available

, который, в свою очередь, вызывает сценарий

/usr/lib/update-notifier/update-motd-updates-available

, этот сценарий выполняет различные действия и, наконец, записывает вывод в текстовый файл

/var/lib/update-notifier/updates-available

РЕДАКТИРОВАТЬ

Что касается части вопроса о перезагрузке, запустите эта команда

/usr/lib/update-notifier/update-motd-reboot-required

не даст результата, если перезагрузка не требуется.

33
ответ дан 23 November 2019 в 00:29

Почему вы не можете просто запустить это?

/usr/lib/update-notifier/apt-check --human-readable

Вот что делает / usr / lib / update-notifier / update-motd-updates-available для сбора информации, по крайней мере, в версия Ubuntu, которую я использую (12.10).

21
ответ дан 23 November 2019 в 00:29

Я также ищу скриптовый метод для проверки обновлений внутри минимальных контейнеров докеров, когда я нашел комментарий в / usr / lib / update-notifier / apt-check :

apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst

Это позволяет выполнять проверку обновлений по сценарию без необходимости установки update-notifier-common package

3
ответ дан 23 November 2019 в 00:29

Вы можете использовать плагин check_apt от monitoring-plugins-basic (Nagios), с преимуществом получения различных кодов возврата в зависимости от того, доступны ли обновления:

$ /usr/lib/nagios/plugins/check_apt
APT WARNING: 18 packages available for upgrade (0 critical updates). |available_upgrades=18;;;0 critical_updates=0;;;0
$ echo $?
1

Коды возврата имеют следующие значения:

  • 0 --> недоступны пакеты для обновления
  • 1 --> недоступны некритичные пакеты для обновления
  • 2 --> доступны критические обновления

Ссылки:

0
ответ дан 23 November 2019 в 00:29

Другие вопросы по тегам:

Похожие вопросы: