rearranged some stuff
[puppet_munin.git] / files / plugins / gentoo_lastupdated
1 #!/usr/bin/perl
2 # -*- perl -*-
3 #
4 # (C) 2007 immerda project
5 #
6 # Plugin to monitor the last update of the gentoo
7 #
8 # Parameters:
9 #
10 #       config
11 #       autoconf
12 #
13 # $Id: users.in 1212 2006-10-29 20:11:58Z janl $
14 #
15 #%# family=auto
16 #%# capabilities=autoconf
17
18 # update /etc/munin/plugin-conf.d/munin-node with:
19 # [gentoo_*]
20 # user root
21 # env.logfile /var/log/emerge.log
22 # env.tail        /usr/bin/tail
23 # env.grep        /bin/grep
24
25 my $logfile = $ENV{'logfile'} || '/var/log/emerge.log';
26 my $grep = $ENV{'grep'} || `which grep`;
27 my $date = $ENV{'date'} || `which date`;
28 my $tail = $ENV{'tail'} || `which tail`;
29 chomp($grep);
30 chomp($date);
31 chomp($tail);
32
33 if ( defined($ARGV[0])) {
34     if ($ARGV[0] eq 'autoconf') {
35         print "yes\n";
36         exit 0;
37     }
38
39     if ( $ARGV[0] eq "config" ) {
40         print "graph_title Gentoo: Last update X days ago\n";
41         #print "graph_args --base 1000 -l 0\n";
42         print "graph_vlabel days\n";
43         print "graph_scale no\n";
44         print "graph_category system\n";
45         #print "graph_printf %.1lf\n";
46         print "lastupdated.label last updated [d ago]\n";
47         print "lastupdated.type GAUGE\n";
48         #print "tty.draw AREASTACK\n";
49         #print "tty.colour 00FF00\n";
50         exit 0;
51     }
52 }
53
54 $days = 0;
55 $last = 0;
56 $now = 0;
57
58 $l=`$grep "emerge" $logfile  | $grep world | $grep -v fetchonly | tail -1`;
59
60 ($last,$rest) = split /:/,$l;
61 $now = `$date +%s`;
62 if($last eq "" or $last == 0 or $now == 0 or $date eq ""){
63         $days = "";
64 }else{
65         $days=($now-$last)/60/60/24; # in tagen
66 }
67
68 print "lastupdated.value $days\n";
69
70 # vim:syntax=perl
71