Antworten:
Als Alternative zu lgarzos Antwort können Sie aus, grep
was Sie interessiert /var/log/dpkg.log
. Wenn Sie beispielsweise alles sehen möchten, was Sie gestern installiert oder aktualisiert haben, können Sie Folgendes ausführen:
cat /var/log/dpkg.log | grep "^2012-03-25.*\ installed\ "
Eines ist zu beachten: Hier werden auch manuell installierte Pakete ( sudo dpkg -i ...
) aufgelistet , die in der apt-Historie nicht angezeigt werden.
Verwenden Sie zgrep noch besser, wenn es installiert ist, damit Sie auch Zeilen in gzippten Dateien finden können
zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log*
Dies ist jetzt auch über das Software-Center möglich! Gehen Sie zum Verlauf und Sie können alle Ihre Updates und Installationen anzeigen.
Es hat sich für uns als nützlich erwiesen, die Frage "Wann haben wir das letzte Mal dieses Ding gepatcht?" Etwas einfacher und genauer zu beantworten. Also habe ich das zusammengestellt. Ich habe es am 12.04 und am 14.04 und am 16.04 getestet. Es gibt einigermaßen genaue Antworten auf diese Frage. Hinweis: "Einigermaßen genau" ist wahrscheinlich nicht "vollständig genau". Hinweis: Nur für diese Frage.
Beispielausgabe:
xenial% 9: ./linuxpatchdate
2016-07-19 54
2017-02-24 363
2017-03-08 7
2017-03-09 2
Unterprogramme und Programm:
#!/usr/bin/perl
#------------------ subroutines --------------------
sub parseRecord {
my $sdate = "";
my $useful = 0;
my $packages = 0;
my @ptmp;
while (my $recordLine = shift() ) {
if ($recordLine =~ m/^Start-Date: ([\d\-]*).*/) {
$sdate = $1;
}
elsif ($recordLine =~ m/^Commandline:.*upgrade/) {
$useful = 1;
}
elsif ($recordLine =~ m/^Install: (.*)/) {
$recordLine =~ s/\([^\)]*\)//g;
@ptmp = split(/,/,$recordLine);
$packages = $packages + $#ptmp + 1;
}
elsif ($recordLine =~ m/^Upgrade: (.*)/) {
$recordLine =~ s/\([^\)]*\)//g;
@ptmp = split(/,/,$recordLine);
$packages = $packages + $#ptmp + 1;
}
}
if ($useful) {
return ($sdate,$packages);
}
else {
return ("0",0);
}
}
#------------------ main program --------------------
@lines = split(/\n/,`/bin/zcat -f /var/log/apt/history.log /var/log/apt/history*gz`);
my %patchHash;
my $line;
my @inputLines;
my $pushDate = "";
my $pushNum = "";
foreach $line (@lines) {
# all records separated by blank lines
if ($line !~ /./) {
# no-op
}
elsif ($line =~ m/^Start-Date: ([\d\-]*).*/) {
@inputLines = ();
push (@inputLines, $line);
}
elsif ($line =~ m/^End-Date: ([\d\-]*).*/) {
($pushDate, $pushNum) = parseRecord(@inputLines);
if ($pushNum != 0) {
$patchHash{$pushDate} += $pushNum;
}
}
else {
push (@inputLines, $line);
}
}
foreach $pushDate (sort(keys(%patchHash))) {
print "$pushDate $patchHash{$pushDate}\n";
}