Как знать, существуют ли доступные обновления?

Я выполняю 12.04 серверов человечности LTS. И я думаю, что было бы хорошо, если мне можно было бы сообщить, когда обновления доступны. Но я не могу найти, как знать...

Я попытался смотреть на apt-get страница справочника. От него я смог использовать apt-get -s upgrade получить Кв. - производится в сценарии, не блокируясь по вопросам.

Теперь, я ясно вижу différence:

Обновления доступны:

apt-get -s upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  dpkg dpkg-dev libdpkg-perl
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst dpkg [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64])
Conf dpkg (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [amd64])
Inst dpkg-dev [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all]) []
Inst libdpkg-perl [1.16.1.2ubuntu7.2] (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])
Conf libdpkg-perl (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])
Conf dpkg-dev (1.16.1.2ubuntu7.3 Ubuntu:12.04/precise-updates [all])

Обновления не доступны:

apt-get -s upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Но я не знаю, как продолжить двигаться оттуда. Как я могу сказать из сценария удара (или сценарий PHP), что существуют доступные обновления или нет?

Редактирование:

Вот мой текущий код удара. Это не работает.

updates_available=`/etc/update-motd.d/90-updates-available`

if [ "${updates_available}" = "0 packages can be updated. 0 updates are security updates." ];
then
   echo "No updates are available"
else
   echo "There are updates available"
fi
8
задан 30 April 2014 в 00:20

1 ответ

Прочитайте страницы справочника для motd(5), pam_motd(8) и update-motd(5). В моей системе, /etc/update-motd.d/90-updates-available вызывает /usr/lib/update-notifier/update-motd-updates-available который отображает это, когда я вхожу в систему:

19 packages can be updated.
12 updates are security updates.

Пашущий немного глубже, "...-updates-available" сценарий вызывает /usr/lib/update-notifier/apt-check --human-readable. При чтении того (Python) Вы будете видеть, что при исключении человекочитаемого флага он произведет "19; 12 дюймов к stderr. Мы можем захватить это с этим:

IFS=';' read updates security_updates < <(/usr/lib/update-notifier/apt-check 2>&1)
echo $updates
echo $security_updates 
19
12

Теперь можно сказать:

if (( updates == 0 )); then
    echo "No updates are available"
else
    echo "There are updates available"
fi
16
ответ дан 16 November 2019 в 16:49

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

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