zone-ls
changeset 17 05132262d212
parent 14 473a1763f095
child 19 2c3bcb280768
--- a/zone-ls	Thu Jul 15 15:33:01 2010 +0200
+++ b/zone-ls	Wed Jul 21 14:04:05 2010 +0200
@@ -1,33 +1,58 @@
-#!/bin/bash
-source ./dnstools.conf
-master_dir=$MASTER_DIR
-zsklive=$ZSKLIVE
-ksklive=$KSKLIVE
-
-printf "%-25s %1s/%1s %3s %7s\n" "Domain" "ZSK" "KSK" "Use" "Sig-End"
-for zone in $master_dir/*
-do
-
-	domain=${zone##/*/}
+#!/usr/bin/perl
 
-	test -f $zone/.index.zsk && anzahl_zsk=`wc -l < $zone/.index.zsk` || anzahl_zsk="0"
-	test -f $zone/.index.ksk && anzahl_ksk=`wc -l < $zone/.index.ksk` || anzahl_ksk="0"
-
-	test -f $zone/keycounter && key_counter=`< $zone/keycounter` || key_counter="0"
+use strict;
 
-	if [ -f $zone/$domain.signed ]
-	then
-		endtime1=`cat $zone/$domain.signed | egrep 'DNSKEY' | egrep '[0-9]{14}' | head -n1 | cut -d" " -f5`
-		endtime2="${endtime1:6:2}.${endtime1:4:2}.${endtime1:0:4}"
-
-	else
-		endtime2="0"
-	fi
-
-	printf "%-25s %1d/%1d %5d %12s\n" \
-		"$domain" "$anzahl_zsk" "$anzahl_ksk" "$key_counter" "$endtime2"
+my $master_dir = "/etc/bind/master";
+chomp (my @domains = `ls $master_dir`);
 
 
-done
+printf "%-25s %1s/%1s %3s %7s\n", "Domain", "ZSK", "KSK", "Used", "Sig-end";
+
+foreach (@domains) {
+	my $domain = $_;
+	my $info_zsk;
+	my $info_ksk;
+	my $info_kc;
+	my $info_end;
+	my @temp;
+
+	#prueft wie viele zsks genutzt werden
+	open(FILE, "$master_dir/$domain/.index.zsk");
+	@temp = <FILE>;
+	close(FILE);
+	$info_zsk = @temp;
+
+	#prueft wie viele ksks genutzt werden
+	open(FILE, "$master_dir/$domain/.index.ksk");
+	@temp = <FILE>;
+	close(FILE);
+	$info_ksk = @temp;
 
+	#prueft wie oft die schluessel zum signieren genutzt wurden
+	if (-e "$master_dir/$domain/keycounter") {
+		open(FILE, "$master_dir/$domain/keycounter");
+		chomp ($info_kc = <FILE>);
+		close(FILE);
+	} else {
+		$info_kc = "-";
+	}
 
+	#prueft das ablaufdatum
+	if (-e "$master_dir/$domain/$domain.signed") {
+		open(FILE, "$master_dir/$domain/$domain.signed");
+		@temp = <FILE>;
+		close (FILE);
+
+		foreach (@temp) {
+			if (m/RSIG.*SOA.*\s(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)\d+\s\(/i) {
+			$info_end = "$3.$2.$1 $4:$5";
+			}	
+		}
+
+	} else {
+		$info_end = "-";
+	}
+	
+	printf "%-25s %1s/%1s %5s %19s\n", $domain, $info_zsk, $info_ksk, $info_kc, $info_end;
+}
+