Answers:
/ var / log / apt ඇසුරුම් ස්ථාපනය කිරීමේ ඉතිහාසයක් අඩංගු වේ. කෙසේ වෙතත්, පෙරනිමියෙන්, එය කළමනාකරණය කරනු ලබන්නේ logrotate
පැරණි ඇතුළත් කිරීම් සම්පීඩනය කර වයස්ගත කිරීමෙනි .
Lgarzo ගේ පිළිතුරට විකල්පයක් ලෙස, ඔබ කැමති grep
දේ ඔබට කළ හැකිය /var/log/dpkg.log
. උදා, ඔබ ඊයේ ස්ථාපනය කළ හෝ යාවත්කාලීන කළ සියල්ල දැකීමට අවශ්ය නම්, ඔබට ධාවනය කළ හැකිය:
cat /var/log/dpkg.log | grep "^2012-03-25.*\ installed\ "
සැලකිල්ලට ගත යුතු එක් දෙයක්: මෙය අතින් ස්ථාපනය කර ඇති පැකේජ ( sudo dpkg -i ...
) ද ලැයිස්තුගත කරනු ඇත, එය යෝග්ය ඉතිහාසයේ නොපෙන්වයි.
Zgrep ස්ථාපනය කර ඇත්නම් ඊටත් වඩා හොඳ භාවිතා කරන්න එවිට ඔබට gzipped ලිපිගොනු වල රේඛා සොයාගත හැකිය
zgrep "^2012-03-25.*\ installed\ " /var/log/dpkg.log*
දැන් මෘදුකාංග මධ්යස්ථානය හරහාද මෙය කළ හැකිය! ඉතිහාසය වෙත ගොස් ඔබට ඔබගේ සියලු යාවත්කාලීන කිරීම් සහ ස්ථාපනයන් ප්රදර්ශනය කළ හැකිය.
"අපි මේ දේ අවසන් වරට ඇලවූයේ කවදාද?" යන ප්රශ්නයට මදක් පහසු සහ නිවැරදි පිළිතුරක් ලබා ගැනීම අපට ප්රයෝජනවත් විය. ඉතින් මම මේක එකට දැම්මා. මම එය 12.04 සහ 14.04 සහ 16.04 යන දිනවල පරීක්ෂා කළෙමි. එය එම ප්රශ්නයට සාධාරණ නිවැරදි පිළිතුරු සපයයි. සටහන: "සාධාරණ ලෙස නිවැරදි" බොහෝ විට "සම්පූර්ණයෙන්ම නිවැරදි" නොවේ. සටහන: "එම ප්රශ්නය සඳහා" පමණි.
නියැදි ප්රතිදානය:
xenial% 9: ./linuxpatchdate
2016-07-19 54
2017-02-24 363
2017-03-08 7
2017-03-09 2
subroutines සහ වැඩසටහන:
#!/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";
}
/var/log/apt/history.log
. සමහර විට වැනි දෙයක්/var/log/apt/history.log.1.gz