Ich verwende einen 12.04 LTS-Ubuntu-Server. Und ich denke, es wäre schön, wenn ich informiert werden könnte, wenn Updates verfügbar sind. Aber ich kann nicht wissen, wie ich es wissen soll ...
Ich habe versucht, auf die apt-get
Manpage zu schauen . Daraus konnte ich apt-get -s upgrade
die apt-get-Ausgabe in einem Skript abrufen, ohne Fragen zu blockieren.
Jetzt sehe ich deutlich den Unterschied:
Updates sind verfügbar:
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])
Updates sind nicht verfügbar:
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.
Aber ich weiß nicht, wie ich von dort aus vorgehen soll. Wie kann ich anhand eines Bash-Skripts (oder PHP-Skripts) feststellen, ob Updates verfügbar sind oder nicht?
Bearbeiten:
Hier ist mein aktueller Bash-Code. Es funktioniert nicht.
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.
wenn es keine Updates gibt.Antworten:
Lesen Sie die man - Seiten
motd(5)
,pam_motd(8)
undupdate-motd(5)
. Ruft auf meinem System/etc/update-motd.d/90-updates-available
Folgendes auf,/usr/lib/update-notifier/update-motd-updates-available
das beim Anmelden angezeigt wird:Wenn Sie etwas tiefer gehen, wird das Skript "...- Updates verfügbar" aufgerufen
/usr/lib/update-notifier/apt-check --human-readable
. Wenn Sie das lesen (Python), werden Sie sehen, dass wenn Sie das vom Menschen lesbare Flag weglassen, "19; 12" an stderr ausgegeben wird. Das können wir uns damit schnappen:Jetzt können Sie sagen:
quelle
if [
anfangen und / etc / update-motd.d / 90-updates-available` = "0 Pakete können aktualisiert werden. 0 Updates sind Sicherheitsupdates." ]; dann ... fi`