--- 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 (<CONFIG>) {
+ 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;