X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=aptcheck%2Faptcheck.pl;h=b6353002b7b7128cc8c18268fe2442db7ea7aabd;hb=12ca199577b3174589205147fe1b2365d231ab85;hp=2dac01abd5ab355bd2efde5739224563e38b1fa7;hpb=90e817a4e409512818d48db9abbaa55f11b3abf6;p=git-tools-moved-to-github.git diff --git a/aptcheck/aptcheck.pl b/aptcheck/aptcheck.pl index 2dac01a..b635300 100755 --- a/aptcheck/aptcheck.pl +++ b/aptcheck/aptcheck.pl @@ -21,14 +21,12 @@ # 15-Aug-2011 Heikki: Adding a total in the headline, for nagiosgrapher # 21-May-2012 Heikki: Added a date since when a package has been pending # 31-May-2012 Heikki: Pointing to the new wiki +# 01-Jan-2013 Heikki: Get hosts from nagios-us as well. # # TODO: Assumes that we release our restricted packages for all versions # and architectures at the same time. Gets only the highest version from # all, and reports anything less than this. Good enough for now. # -# TODO: Get the dates from ls --full-time /var/cache/apt/archives/ -# and display next to the packages, so we can see how long they have -# been lingering. Boldface them if older than some limit #### Init use strict; @@ -52,10 +50,15 @@ my %hostcomments = ( # I could use a hard-coded list, but I would forget to maintain it. # Nagios knows most of our hosts. It even knows which are worth # checking, they have a command to check apts! +print "Getting hostlist from nagios\n" if $debug; +my $hostlist1 = `ssh nagios grep -l Apt /etc/nagios3/indexdata-conf.d/*.cfg` + or die "Could not get host list from nagios (dk)"; -my $hostlist = `ssh nagios grep -l Apt /etc/nagios3/indexdata-conf.d/*.cfg` - or die "Could not get host list"; +print "Getting hostlist from nagios-us\n" if $debug; +my $hostlist2 = `ssh nagios-us grep -l Apt /etc/nagios3/indexdata-conf.d/*.cfg` + or die "Could not get host list from nagios (dk)"; +my $hostlist = $hostlist1 . $hostlist2; print "Got list:\n$hostlist\n" if $debug>2; ###### Get list of packages that can be manually maintained @@ -123,6 +126,8 @@ my %newdates; # To be written in the new version of the file my $datefilename = "aptcheck.data"; my $dateoldfilename = "aptcheck.old"; my $thisdate = "*"; # indicates really old stuff +my $warndate; # Older than this will be boldfaced + if ( -f $datefilename ) { print "Reading dates from $datefilename\n" if $debug; open F, $datefilename or die "Could not open date file $datefilename: $!"; @@ -136,6 +141,9 @@ if ( -f $datefilename ) { close F; $thisdate = `date +%F`; chomp($thisdate); + $warndate = `date +%F -d "30 days ago"` ; ; + chomp($warndate); + print "Dates: now: '$thisdate' warn: '$warndate'\n" if $debug; } else { print "No datefile $datefilename found, starting from scratch\n"; } @@ -143,7 +151,8 @@ if ( -f $datefilename ) { my $table = "
" . $newdates{$datekey} . " | "; + my $dispdate = $newdates{$datekey}; + # if ( $dispdate lt $warndate ) { + if ( 0 ) { # manual packages don't need to be highlighted + $dispdate = "$dispdate !"; + } + $det .= "" . $dispdate . " | "; $det .= "\n"; my $key = "$restrname"; if ( !$summary{$key} ) { @@ -264,7 +278,11 @@ for my $hline ( split("\n",$hostlist) ) { } else { $newdates{$datekey} = $thisdate; } - $det .= "" . $newdates{$datekey} . " | "; + my $dispdate = $newdates{$datekey}; + if ( ( $dispdate lt $warndate ) && ( $src =~ /Security/) ) { + $dispdate = "$dispdate !"; + } + $det .= "" . $dispdate . " | "; $det .= "\n"; } @@ -297,14 +315,18 @@ for my $hline ( split("\n",$hostlist) ) { $table .= "