Estoy ejecutando un servidor 12.04 LTS ubuntu. Y creo que sería bueno que me informaran cuando hay actualizaciones disponibles. Pero no puedo encontrar cómo saber ...
He intentado mirar la apt-get
página del manual. Desde allí pude usar apt-get -s upgrade
para obtener la salida de apt-get en un script sin bloquear preguntas.
Ahora, veo claramente la diferencia:
Hay actualizaciones disponibles:
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])
Las actualizaciones no están disponibles:
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.
Pero no sé cómo proceder desde allí. ¿Cómo puedo saber, desde un script bash (o script PHP) que hay actualizaciones disponibles o no?
Editar:
Aquí está mi código bash actual. No 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.
si no hay actualizaciones.Respuestas:
Lea las páginas de manual para
motd(5)
,pam_motd(8)
yupdate-motd(5)
. En mi sistema,/etc/update-motd.d/90-updates-available
invoca lo/usr/lib/update-notifier/update-motd-updates-available
que muestra esto cuando inicio sesión:Profundizando un poco más, se invoca el script "...- actualizaciones disponibles"
/usr/lib/update-notifier/apt-check --human-readable
. Si lees eso (python), verás que si omites el indicador legible por humanos, generará "19; 12" en stderr. Podemos agarrar eso con esto:Ahora puedes decir:
fuente
if [
/ etc / update-motd.d / 90-updates-available` = "0 paquetes se pueden actualizar. 0 actualizaciones son actualizaciones de seguridad". ]; entonces ... fi`