Ich erstelle ein Skript, um herauszufinden, wann eine Liste von Servern zuletzt vollständig aktualisiert wurde yum update
.
Ich kann es an einem finden history |grep "yum update"|head -n 1
, das Problem ist jedoch, dass ein Benutzer es hätte starten können, aber nicht "y" in die Eingabeaufforderung eingegeben hat.
Ein anderer Weg, den ich versuchte, war mit yum history
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
109 | <xyz user> | 2015-08-20 07:18 | Erase | 1 E<
108 | root <root> | 2015-08-18 08:56 | Update | 3 >
107 | root <root> | 2015-08-14 07:39 | Update | 1
106 | root <root> | 2015-08-14 07:38 | Update | 1
105 | root <root> | 2015-08-14 07:38 | Update | 3
104 | root <root> | 2015-08-13 07:31 | Update | 1
103 | root <root> | 2015-08-11 05:46 | Update | 1
102 | root <root> | 2015-08-11 05:46 | Update | 2
101 | root <root> | 2015-08-11 05:45 | Update | 3
100 | root <root> | 2015-08-11 05:45 | Update | 3
99 | root <root> | 2015-08-10 20:41 | Update | 1
98 | root <root> | 2015-08-05 02:35 | Update | 1
97 | root <root> | 2015-05-14 10:52 | Update | 1
96 | root <root> | 2015-05-01 02:59 | Obsoleting | 2
95 | root <root> | 2015-04-09 16:06 | Update | 1 <
94 | <xyz.user> | 2015-03-28 08:49 | Update | 1 ><
93 | <xyz.usert> | 2015-03-28 08:14 | Erase | 3 ><
92 | <xyz.user> | 2015-03-13 07:46 | Install | 6 ><
91 | <xyz.user> | 2015-03-13 05:45 | I, U | 24 >
90 | root <root> | 2015-03-04 01:24 | Update | 3
Aber ich kann keine Möglichkeit finden, das Datum zu bestimmen, an dem der yum update
Start erfolgte und erfolgreich war. Wenn ich beispielsweise die Transaktions-ID 108 überprüfe, die als "Update" markiert ist und am 18. gestartet wurde, finde ich den Befehl yum update
für dieses bestimmte Datum nicht:
history |grep 2015 |grep "yum update"
5182 20150313-054444 > yum update
Ein anderer Pfad, den ich ausprobiert habe, war mit, zeigt /var/log/yum.log
aber yum.log
auch Installationen und Updates an. Wenn ein Paket während der Installation eines Pakets yum install varnish
aktualisiert wird, z. B. und eine Aktualisierung bestimmter Pakete erforderlich ist, z. B.: (Varnish-libs-2.1.5-5.el6.i686, 3.0.7-1.el6.i686 usw.) dies wird im yum.log als aktualisiert angezeigt
Gibt es eine Möglichkeit, das Datum zu ermitteln, an dem a yum update
gestartet wurde und erfolgreich war?
Antworten:
Sie haben Ihre Frage fast beantwortet. Hier finden Sie eine Möglichkeit, die neuesten 5 aktualisierten Pakete zu finden:
grep Updated: /var/log/yum.log | tail -5
Ausgabebeispiel:
quelle
-10
wird nicht benötigt, da der Schwanz standardmäßig zehn Zeilengrep Updated: /var/log/yum.log | tail
yum update
gestartet wurde und erfolgreich ausgeführt wurde, nicht die letzten 5 aktualisierten Pakete./var/log/yum.log-20180101
usw.Zuerst müssen Sie definieren, was "Upgrade" bedeutet. Z.B. Ein Upgrade mit nur einem neueren Kernel ist eine Installation (und wahrscheinlich ein Löschen eines älteren). Wenn jemand "Upgrade foo" macht, zählt das? Was ist mit "Distribution-Sync", bei dem nur Upgrades durchgeführt werden (oder nicht)? Zählt es, wenn die Transaktion fehlgeschlagen ist?
Dann hör auf, die Ausgabe zu greifen, es wird nur zu Schmerzen und Leiden führen.
Die Verwendung der API ist ziemlich einfach, z. B. (zuletzt, als eine Transaktion gestartet wurde, um ein Paket zu aktualisieren):
quelle
Der folgende Befehl listet kürzlich installierte oder aktualisierte RPM-Pakete auf:
Es kann auch Pakete enthalten, die außerhalb von YUM installiert sind. Dieser Befehl kann auch ohne Root-Berechtigung ausgeführt werden.
quelle