]> git.sesse.net Git - nms/blob - clients/dhcptail.pl
initial import
[nms] / clients / dhcptail.pl
1 #! /usr/bin/perl
2 use DBI;
3 use POSIX;
4 use strict;
5 use warnings;
6
7 # WARNING: CHANGE THIS! :-P
8 my $year = 2005;
9
10 my %months = (
11         Jan => 1,
12         Feb => 2,
13         Mar => 3,
14         Apr => 4,
15         May => 5,
16         Jun => 6,
17         Jul => 7,
18         Aug => 8,
19         Sep => 9,
20         Oct => 10,
21         Nov => 11,
22         Dec => 12
23 );
24
25 my ($dbh, $q);
26 while (<>) {
27         /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+:\d+:\d+).*DHCPACK on (\d+\.\d+\.\d+\.\d+)/ or next;
28         my $date = $year . "-" . $months{$1} . "-" . $2 . " " . $3;
29
30         if (!defined($dbh) || !$dbh->ping) {
31                 $dbh = DBI->connect("dbi:Pg:dbname=snmpfetch;host=violet.tg05.gathering.org", "snmpfetch", "removed")
32                         or die "Couldn't connect to database";
33                 $q = $dbh->prepare("UPDATE dhcp SET last_ack=? WHERE inet ? << network AND ( last_ack < ? OR last_ack IS NULL )")
34                         or die "Couldn't prepare query";
35         }
36
37         print STDERR "$date $4\n";
38         $q->execute($date, $4, $date)
39                 or die "Couldn't push $1 into database";
40 }