aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristian Lyngstol <kly@kly.no>2016-03-17 20:05:45 +0000
committerKristian Lyngstol <kly@kly.no>2016-03-17 20:05:45 +0000
commit9e117844b2e2f7fc8e0ed8ab84cfce8a3160da4f (patch)
treeaaeb1f056f2c685f8b59b28a3affa86c945716ca
parent025f01e7e8c5bfea21b559fbac650f90c2774a29 (diff)
NMS: Rewrite dhcptailer to use different data format
Now: Logs!
-rwxr-xr-xclients/dhcptail.pl39
1 files changed, 5 insertions, 34 deletions
diff --git a/clients/dhcptail.pl b/clients/dhcptail.pl
index e7898aa..2b7e6bf 100755
--- a/clients/dhcptail.pl
+++ b/clients/dhcptail.pl
@@ -31,44 +31,15 @@ my %months = (
Dec => 12
);
-my ($dbh, $q, $cq);
+my ($dbh, $q);
+$dbh = nms::db_connect();
+$q = $dbh->prepare("INSERT INTO dhcp (switch,time,mac) VALUES((SELECT switch FROM switches WHERE ?::inet << network),?,?)");
open(SYSLOG, "tail -n 9999999 -F /var/log/syslog |") or die "Unable to tail syslog: $!";
while (<SYSLOG>) {
/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d+)\s+(\d+:\d+:\d+).*DHCPACK on (\d+\.\d+\.\d+\.\d+) to (\S+)/ or next;
my $date = $year . "-" . $months{$1} . "-" . $2 . " " . $3;
my $machine = $5;
- my $owner_color;
-
- if ($machine eq '00:15:c5:42:ce:e9') {
- $owner_color = '#00ff00'; # Steinar
- } elsif ($machine eq '00:1e:37:1c:d2:65') {
- $owner_color = '#c0ffee'; # Trygve
- } elsif ($machine eq '00:16:d3:ce:8f:a7') {
- $owner_color = '#f00f00'; # Jon
- } elsif ($machine eq '00:16:d4:0c:8a:1c') {
- $owner_color = '#ff99ff'; # Jørgen
- } elsif ($machine eq '00:18:8b:aa:2f:f8') {
- $owner_color = '#663300'; # Kjetil
- } elsif ($machine eq '00:15:58:29:14:e3') {
- $owner_color = '#f1720f'; # Bård
- } else {
- $owner_color = "#000000"; # Unknown
- }
-
- if (!defined($dbh) || !$dbh->ping) {
- $dbh = nms::db_connect();
- $q = $dbh->prepare("UPDATE dhcp SET last_ack=? WHERE ?::inet << network AND ( last_ack < ? OR last_ack IS NULL )")
- or die "Couldn't prepare query";
- $cq = $dbh->prepare("UPDATE dhcp SET owner_color=? WHERE ?::inet << network AND owner_color IS NULL")
- or die "Couldn't prepare query";
- }
-
- print STDERR "$date $4\n";
- $q->execute($date, $4, $date)
- or die "Couldn't push $1 into database";
- if (defined($owner_color)) {
- $cq->execute($owner_color, $4)
- or die "Couldn't push $1 into database";
- }
+ $q->execute($4,$date,$machine);
+ $q->commit;
}
close SYSLOG;