Я работаю на сервере Ubuntu 12.04 LTS. И я думаю, что было бы неплохо, если бы мне сообщили, когда появятся обновления. Но я не могу найти, как узнать ...
Я пробовал смотреть на apt-get
странице справочника. Из него я смог использовать apt-get -s upgrade
вывод apt-get в скрипте, не блокируя вопросы.
Теперь я ясно вижу разницу:
Доступны обновления:
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.
Но я не знаю, как действовать дальше. Как я могу узнать из bash-скрипта (или php-скрипта), что обновления доступны или нет?
Редактировать :
Вот мой текущий код Bash. Это не работает.
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
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
если нет обновлений.Ответы:
Прочитайте страницы руководства для
motd(5)
,pam_motd(8)
иupdate-motd(5)
. В моей системе/etc/update-motd.d/90-updates-available
вызывает,/usr/lib/update-notifier/update-motd-updates-available
который отображает это, когда я вхожу :Пройдя немного глубже, запускается скрипт «...- updates-available»
/usr/lib/update-notifier/apt-check --human-readable
. Если вы прочитаете это (python), вы увидите, что если вы опустите флаг, читаемый человеком, он выведет «19; 12» в stderr. Мы можем получить это с этим:Теперь вы можете сказать:
источник
if [
/ etc / update-motd.d / 90-updates-available` = "0 пакетов могут быть обновлены. 0 обновлений являются обновлениями безопасности." ]; тогда ... фи`