diff -r a31edb6b728c -r 05132262d212 zone-ls --- 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 = ; + close(FILE); + $info_zsk = @temp; + + #prueft wie viele ksks genutzt werden + open(FILE, "$master_dir/$domain/.index.ksk"); + @temp = ; + 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 = ); + close(FILE); + } else { + $info_kc = "-"; + } + #prueft das ablaufdatum + if (-e "$master_dir/$domain/$domain.signed") { + open(FILE, "$master_dir/$domain/$domain.signed"); + @temp = ; + 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; +} +