Estou executando um servidor ubuntu 12.04 LTS. E acho que seria bom se eu fosse informado quando houver atualizações disponíveis. Mas não consigo encontrar como saber ...
Eu tentei olhar para a apt-get
página de manual. A partir dele, eu pude usar apt-get -s upgrade
para obter a saída do apt-get em um script sem bloquear as perguntas.
Agora, vejo claramente a diferença:
As atualizações estão disponíveis:
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])
As atualizações não estão disponíveis:
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.
Mas não sei como proceder a partir daí. Como posso saber, a partir de um script bash (ou script php), que existem atualizações disponíveis ou não?
Editar:
Aqui está o meu código atual do bash. Não funciona.
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.
se não houver atualizações.Respostas:
Leia as páginas de manual para
motd(5)
,pam_motd(8)
eupdate-motd(5)
. No meu sistema,/etc/update-motd.d/90-updates-available
chama o/usr/lib/update-notifier/update-motd-updates-available
que exibe isso quando eu faço login:Aprofundando um pouco mais, o script "...- updates-available" chama
/usr/lib/update-notifier/apt-check --human-readable
. Se você ler isso (python), verá que se omitir o sinalizador legível por humanos, ele exibirá "19; 12" para stderr. Podemos entender isso com isso:Agora você pode dizer:
fonte
if [
/ etc / update-motd.d / 90-updates-available` = "0 pacotes podem ser atualizados. 0 atualizações são atualizações de segurança." ]; então ... fi` #