--- 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;
+}
+