diff -r 6715f8f9d04c -r 7229d1c95ea8 dnssec-killkey --- a/dnssec-killkey Thu Jul 29 14:19:56 2010 +0200 +++ b/dnssec-killkey Mon Aug 02 11:15:18 2010 +0200 @@ -2,8 +2,22 @@ use strict; -my $master_dir="/etc/bind/master"; # ordner fuer die einzelnen zonedateiordner -my $ablauf_zeit="1"; # zeit fuer den key-rollover in h +my %config; +open (CONFIG, "dnstools.conf"); +while () { + chomp; + s/#.*//; + s/\t//g; + s/\s//g; + + next unless length; + my ($cname, $ccont) = split (/\s*=\s*/, $_,2); + $config{$cname} = $ccont; +} +close (CONFIG); + +my $master_dir = $config{master_dir}; +my $ablauf_zeit = $config{abl_zeit}; my $zone; my @status; my @auto; @@ -15,14 +29,14 @@ my $zdir = "$master_dir/$zone"; if (-e "$master_dir/$zone") { - if (-e "$zdir/$zone.signed") { `rm $zdir/$zone.signed`} - if (-e "$zdir/.keycounter") { `rm $zdir/.keycounter`} - if (-e "$zdir/.index.ksk") { `rm $zdir/.index.ksk`} - if (-e "$zdir/.index.zsk") { `rm $zdir/.index.zsk`} - if (-e "$zdir/dsset-$zone.") { `rm $zdir/dsset-$zone.`} - if (-e "$zdir/keyset-$zone.") { `rm $zdir/keyset-$zone.`} + if (-e "$zdir/$zone.signed") { unlink $zdir/$zone.signed} + if (-e "$zdir/.keycounter") { unlink $zdir/.keycounter} + if (-e "$zdir/.index.ksk") { unlink $zdir/.index.ksk} + if (-e "$zdir/.index.zsk") { unlink $zdir/.index.zsk} + if (-e "$zdir/dsset-$zone.") { unlink $zdir/dsset-$zone.} + if (-e "$zdir/keyset-$zone.") { unlink $zdir/keyset-$zone.} - foreach (`ls $master_dir/$zone/K*[key,private]`){ `rm $_`} + for (`ls $master_dir/$zone/K*[key,private]`){ unlink $_} } else { print "$zone ist keine verwaltete zone \n"; @@ -80,7 +94,7 @@ # nach abgeschlossenem key-rollover werden fuer die entsprechende zone # unbenoetigte schluessel entfernt und die vorhandenen schluessel in die # zonedatei geschrieben. -foreach (@auto) { +for (@auto) { my $zone = $_; my @old_zone_content = (); my @new_zone_content = (); @@ -101,14 +115,14 @@ # kuerzt die schluessel-bezeichnung aus der indexdatei auf die # id um sie besser vergleichen zu koennen. - foreach (@keylist) { + for (@keylist) { chomp; s#K.*\+.*\+(.*)#$1#; } # filtert alle schluessel aus der zonedatei # old_zone_content ==> new_zone_content - foreach (@old_zone_content) { + for (@old_zone_content) { unless (/IN\sDNSKEY/) { push @new_zone_content, $_; } @@ -116,12 +130,12 @@ # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen # indexdatei beschrieben sind. wenn nicht werden sie geloescht. - foreach (`ls $master_dir/$zone/K*[key,private]`){ + for (`ls $master_dir/$zone/K*[key,private]`){ chomp; $file = $_; my $rm_count = 1; - foreach (@keylist) { + for (@keylist) { if ($file =~ /$_/) { $rm_count = 0;