--- a/README Thu Aug 05 10:49:36 2010 +0200
+++ b/README Mon Aug 09 11:45:43 2010 +0200
@@ -1,23 +1,27 @@
Zonedatei erstellen
- - mkdomain <kundenname> <domainname>
+ - zone-mk <kundenname> <domainname>
- mkready
Zonedatei loeschen
- - rmdomain
+ - zone-rm
- mkready
-dnssec benutzen
+DNSSec benutzen / Schlüßel erstellen
- dnssec-creatkey
- dnssec-sign
- mkready
-neuen KSK/ZSK erstellen
+neuen KSK und ZSK erstellen
- dnssec-creatkey <domain>
- dnssec-sign
- mkready
- - dnssec-killkeys (nach der ablaufzeit)
+ - dnssec-killkey (nach der Ablauf des Key-Rollover)
- mkready
+
+Schluessel loeschen
+ - dnssec-killkey <domain>
+ - mkready
--- a/dnssec-creatkey Thu Aug 05 10:49:36 2010 +0200
+++ b/dnssec-creatkey Mon Aug 09 11:45:43 2010 +0200
@@ -3,33 +3,31 @@
use strict;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-for (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
+close(CONFIG);
-
-my $master_dir = $config{master_dir};
+my $master_dir = $config{master_dir};
my $key_counter_end = $config{key_counter_end};
my @change;
my @manu;
@@ -39,168 +37,172 @@
# prueft ob eingaben in ARGV domains sind und gibt sie in die liste @manu
for (@ARGV) {
- chomp (my $zone = `idn --quiet "$_"`);
+ chomp( my $zone = `idn --quiet "$_"` );
- if (-d "$master_dir/$zone") {
- push (@manu, $zone);
- }
- else {
- print " $zone not exist\n ";
- }
+ if ( -d "$master_dir/$zone" ) {
+ push( @manu, $zone );
+ }
+ else {
+ print " $zone not exist\n ";
+ }
}
-
+
# gibt alle zonen mit abgelaufenen keycounter in die liste @change
while (<$master_dir/*>) {
- chomp ($zone = $_);
- my $key;
+ chomp( $zone = $_ );
+ my $key;
- unless (-f "$zone/.keycounter") {
- next
- }
+ unless ( -f "$zone/.keycounter" ) {
+ next;
+ }
- open (KEY, "$zone/.keycounter") or die "$zone/.keycounter: $!\n";
- $key = <KEY>;
- close (KEY);
+ open( KEY, "$zone/.keycounter" ) or die "$zone/.keycounter: $!\n";
+ $key = <KEY>;
+ close(KEY);
- if ($key_counter_end <= $key) {
- $zone =~ s#($master_dir/)(.*)#$2#;
- push (@change, $zone);
- }
+ if ( $key_counter_end <= $key ) {
+ $zone =~ s#($master_dir/)(.*)#$2#;
+ push( @change, $zone );
+ }
}
#erzeugt zsks
-for (@change, @manu) {
- $zone = $_;
+for ( @change, @manu ) {
+ $zone = $_;
- chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n";
- $keyname = `dnssec-keygen -a RSASHA1 -b 512 -n ZONE $zone`;
+ chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n";
+ $keyname = `dnssec-keygen -a RSASHA1 -b 512 -n ZONE $zone`;
- unless (-f ".index.zsk") {
- @index = ();
- }
- else {
- open (INDEX, ".index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n";
- @index = <INDEX>;
- close (INDEX);
- }
+ unless ( -f ".index.zsk" ) {
+ @index = ();
+ }
+ else {
+ open( INDEX, ".index.zsk" )
+ or die "$master_dir/$zone/.index.zsk: $!\n";
+ @index = <INDEX>;
+ close(INDEX);
+ }
- push @index, $keyname;
- if (@index > 2){
- shift (@index);
- }
+ push @index, $keyname;
+ if ( @index > 2 ) {
+ shift(@index);
+ }
- open (INDEX, ">.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n";
- print INDEX @index;
- close (INDEX);
+ open( INDEX, ">.index.zsk" ) or die "$master_dir/$zone/.index.zsk: $!\n";
+ print INDEX @index;
+ close(INDEX);
- chomp ($keyname);
- print "$keyname (ZSK) erzeugt fuer $zone \n";
+ chomp($keyname);
+ print "$keyname (ZSK) erzeugt fuer $zone \n";
- open (KC, ">.keycounter") or die "$master_dir/$zone/keycounter: $!\n";
- print KC "0";
- close (KC);
+ open( KC, ">.keycounter" ) or die "$master_dir/$zone/keycounter: $!\n";
+ print KC "0";
+ close(KC);
}
#erzeugt ksks
for (@manu) {
- $zone = $_;
-
- chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n";
- $keyname = `dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $zone`;
+ $zone = $_;
- unless (-f ".index.ksk") {
- @index = ();
- } else {
- open (INDEX, ".index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- @index = <INDEX>;
- close (INDEX);
- }
+ chdir "$master_dir/$zone" or die "$master_dir/$zone: $!\n";
+ $keyname = `dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE $zone`;
- push @index, $keyname;
- if (@index > 2){
- shift (@index);
- }
+ unless ( -f ".index.ksk" ) {
+ @index = ();
+ }
+ else {
+ open( INDEX, ".index.ksk" )
+ or die "$master_dir/$zone/.index.ksk: $!\n";
+ @index = <INDEX>;
+ close(INDEX);
+ }
- open (INDEX, ">.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- print INDEX @index;
- close (INDEX);
+ push @index, $keyname;
+ if ( @index > 2 ) {
+ shift(@index);
+ }
- chomp ($keyname);
- print "$keyname (KSK) erzeugt fuer $zone \n";
+ open( INDEX, ">.index.ksk" ) or die "$master_dir/$zone/.index.ksk: $!\n";
+ print INDEX @index;
+ close(INDEX);
+
+ chomp($keyname);
+ print "$keyname (KSK) erzeugt fuer $zone \n";
}
-
# loescht alle unbenoetigten schluessel, fuegt die schluessel in
# die zone-datei
-for (@change, @manu) {
- $zone = $_;
- my @old_zone_content = ();
- my @new_zone_content = ();
- my @keylist = ();
- my $file = ();
-
+for ( @change, @manu ) {
+ $zone = $_;
+ my @old_zone_content = ();
+ my @new_zone_content = ();
+ my @keylist = ();
+ my $file = ();
- open (INDEX, "<$master_dir/$zone/.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n";
- @keylist = <INDEX>;
- close (INDEX);
+ open( INDEX, "<$master_dir/$zone/.index.zsk" )
+ or die "$master_dir/$zone/.index.zsk: $!\n";
+ @keylist = <INDEX>;
+ close(INDEX);
- open (INDEX, "<$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- push @keylist, <INDEX>;
- close (INDEX);
+ open( INDEX, "<$master_dir/$zone/.index.ksk" )
+ or die "$master_dir/$zone/.index.ksk: $!\n";
+ push @keylist, <INDEX>;
+ close(INDEX);
- open (ZONE, "<$master_dir/$zone/$zone") or die "$master_dir/$zone/$zone: $!\n";
- @old_zone_content = <ZONE>;
- close (ZONE);
+ open( ZONE, "<$master_dir/$zone/$zone" )
+ or die "$master_dir/$zone/$zone: $!\n";
+ @old_zone_content = <ZONE>;
+ close(ZONE);
- # kuerzt die schluessel-bezeichnung aus der indexdatei auf die id um sie
- # besser vergleichen zu koennen.
- for (@keylist) {
- chomp;
- s#K.*\+.*\+(.*)#$1#;
- }
+ # kuerzt die schluessel-bezeichnung aus der indexdatei auf die id um sie
+ # besser vergleichen zu koennen.
+ for (@keylist) {
+ chomp;
+ s#K.*\+.*\+(.*)#$1#;
+ }
- # filtert alle schluessel aus der zonedatei
- # old_zone_content ==> new_zone_content
- for (@old_zone_content) {
- unless (/IN\sDNSKEY/) {
- push @new_zone_content, $_;
- }
- }
+ # filtert alle schluessel aus der zonedatei
+ # old_zone_content ==> new_zone_content
+ for (@old_zone_content) {
+ unless (/IN\sDNSKEY/) {
+ push @new_zone_content, $_;
+ }
+ }
- # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen
- # indexdatei beschrieben sind. wenn nicht werden sie geloescht.
- for (`ls $master_dir/$zone/K*[key,private]`){
- chomp;
- $file = $_;
- my $rm_count = 1;
+ # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen
+ # indexdatei beschrieben sind. wenn nicht werden sie geloescht.
+ for (`ls $master_dir/$zone/K*[key,private]`) {
+ chomp;
+ $file = $_;
+ my $rm_count = 1;
+
+ for (@keylist) {
- for (@keylist) {
+ if ( $file =~ /$_/ ) {
+ $rm_count = 0;
- if ($file =~ /$_/) {
- $rm_count = 0;
+ # schluessel die in der indexdatei standen, werden an die
+ # zonedatei angehangen.
+ if ( $file =~ /.*key/ ) {
+ open( KEYFILE, "<$file" ) or next "$file: $!\n";
+ push @new_zone_content, <KEYFILE>;
+ close(KEYFILE);
- # schluessel die in der indexdatei standen, werden an die
- # zonedatei angehangen.
- if ($file =~ /.*key/) {
- open (KEYFILE, "<$file") or next "$file: $!\n";
- push @new_zone_content, <KEYFILE>;
- close (KEYFILE);
-
- last;
- }
- }
- }
+ last;
+ }
+ }
+ }
- #loescht alle unbenoetigten schluessel
- if ($rm_count == 1) {
- unlink "$file";
- }
- }
-
+ #loescht alle unbenoetigten schluessel
+ if ( $rm_count == 1 ) {
+ unlink "$file";
+ }
+ }
- open (ZONE, ">$master_dir/$zone/$zone") or die "$master_dir/$zone/$zone: $!\n";
- print ZONE @new_zone_content;
- close (ZONE);
-
- print "$master_dir/$zone/$zone wurde neu erstellt \n";
+ open( ZONE, ">$master_dir/$zone/$zone" )
+ or die "$master_dir/$zone/$zone: $!\n";
+ print ZONE @new_zone_content;
+ close(ZONE);
+
+ print "$master_dir/$zone/$zone wurde neu erstellt \n";
}
--- a/dnssec-killkey Thu Aug 05 10:49:36 2010 +0200
+++ b/dnssec-killkey Mon Aug 09 11:45:43 2010 +0200
@@ -3,104 +3,107 @@
use strict;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-for (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
+close(CONFIG);
-my $master_dir = $config{master_dir};
+my $master_dir = $config{master_dir};
my $ablauf_zeit = $config{abl_zeit};
my $zone;
my @status;
my @auto;
-chomp (my $now_time=`date +%s`); # aktuelle unixzeit
-
+chomp( my $now_time = `date +%s` ); # aktuelle unixzeit
# prueft zonen aus ARGV und loescht das schluesselmaterial
for (@ARGV) {
- chomp ($zone = `idn --quiet $_`);
- my $zdir = "$master_dir/$zone";
- unless (-e "$master_dir/$zone") {
- print "$zone ist keine verwaltete zone \n";
- } else {
- 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."}
- for (`ls $master_dir/$zone/K*[key,private]`){ unlink $_}
- }
+ chomp( $zone = `idn --quiet $_` );
+ my $zdir = "$master_dir/$zone";
+ unless ( -e "$master_dir/$zone" ) {
+ print "$zone ist keine verwaltete zone \n";
+ }
+ else {
+ 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." }
+ for (`ls $master_dir/$zone/K*[key,private]`) { unlink $_ }
+ }
}
# beendet den key-rollover
for (<$master_dir/*>) {
- $zone = $_;
- $zone =~ s#($master_dir/)(.*)#$2#;
+ $zone = $_;
+ $zone =~ s#($master_dir/)(.*)#$2#;
- my @index = ();
- my $index_wc;
+ my @index = ();
+ my $index_wc;
- # prueft nach der ".index.zsk"-datei und erstellt den zeitpunkt
- # an dem das key-rollover endet. - $status[9]
- if (-e "$master_dir/$zone/.index.zsk") {
- @status = stat("$master_dir/$zone/.index.zsk");
- $status[9] += (3600 * $ablauf_zeit);
- }
- else {
- next;
- }
+ # prueft nach der ".index.zsk"-datei und erstellt den zeitpunkt
+ # an dem das key-rollover endet. - $status[9]
+ if ( -e "$master_dir/$zone/.index.zsk" ) {
+ @status = stat("$master_dir/$zone/.index.zsk");
+ $status[9] += ( 3600 * $ablauf_zeit );
+ }
+ else {
+ next;
+ }
- # prueft ob das key-rollover-ende erreicht ist
- unless ($status[9] < $now_time ) {
- next;
- }
+ # prueft ob das key-rollover-ende erreicht ist
+ unless ( $status[9] < $now_time ) {
+ next;
+ }
- # prueft die anzahl der schluessel in der ".index.zsk"
- # loescht alte schluessel
- open (INDEX, "$master_dir/$zone/.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n";
- @index = <INDEX>;
- $index_wc = @index;
- close (INDEX);
- if ($index_wc > 1) {
- open (INDEX, ">$master_dir/$zone/.index.zsk")or die "$master_dir/$zone/.index.zsk: $!\n";
- print INDEX $index[1];
- close (INDEX);
- push @auto, $zone;
- }
+ # prueft die anzahl der schluessel in der ".index.zsk"
+ # loescht alte schluessel
+ open( INDEX, "$master_dir/$zone/.index.zsk" )
+ or die "$master_dir/$zone/.index.zsk: $!\n";
+ @index = <INDEX>;
+ $index_wc = @index;
+ close(INDEX);
+ if ( $index_wc > 1 ) {
+ open( INDEX, ">$master_dir/$zone/.index.zsk" )
+ or die "$master_dir/$zone/.index.zsk: $!\n";
+ print INDEX $index[1];
+ close(INDEX);
+ push @auto, $zone;
+ }
- # prueft die anzahl der schluessel in der ".index.ksk"
- # loescht alte schluessel
- open (INDEX, "$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- @index = <INDEX>;
- $index_wc = @index;
- close (INDEX);
- if ($index_wc > 1) {
- open (INDEX, ">$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- print INDEX $index[1];
- close (INDEX);
- push @auto, $zone;
- }
+ # prueft die anzahl der schluessel in der ".index.ksk"
+ # loescht alte schluessel
+ open( INDEX, "$master_dir/$zone/.index.ksk" )
+ or die "$master_dir/$zone/.index.ksk: $!\n";
+ @index = <INDEX>;
+ $index_wc = @index;
+ close(INDEX);
+ if ( $index_wc > 1 ) {
+ open( INDEX, ">$master_dir/$zone/.index.ksk" )
+ or die "$master_dir/$zone/.index.ksk: $!\n";
+ print INDEX $index[1];
+ close(INDEX);
+ push @auto, $zone;
+ }
}
@@ -108,72 +111,76 @@
# unbenoetigte schluessel entfernt und die vorhandenen schluessel in die
# zonedatei geschrieben.
for (@auto) {
- my $zone = $_;
- my @old_zone_content = ();
- my @new_zone_content = ();
- my @keylist = ();
- my $file;
+ my $zone = $_;
+ my @old_zone_content = ();
+ my @new_zone_content = ();
+ my @keylist = ();
+ my $file;
- open (INDEX, "$master_dir/$zone/.index.zsk") or die "$master_dir/$zone/.index.zsk: $!\n";
- @keylist = <INDEX>;
- close (INDEX);
+ open( INDEX, "$master_dir/$zone/.index.zsk" )
+ or die "$master_dir/$zone/.index.zsk: $!\n";
+ @keylist = <INDEX>;
+ close(INDEX);
- open (INDEX, "$master_dir/$zone/.index.ksk") or die "$master_dir/$zone/.index.ksk: $!\n";
- push @keylist, <INDEX>;
- close (INDEX);
+ open( INDEX, "$master_dir/$zone/.index.ksk" )
+ or die "$master_dir/$zone/.index.ksk: $!\n";
+ push @keylist, <INDEX>;
+ close(INDEX);
- open (ZONE, "$master_dir/$zone/$zone") or die "$master_dir/$zone/$zone: $!\n";
- @old_zone_content = <ZONE>;
- close (ZONE);
+ open( ZONE, "$master_dir/$zone/$zone" )
+ or die "$master_dir/$zone/$zone: $!\n";
+ @old_zone_content = <ZONE>;
+ close(ZONE);
- # kuerzt die schluessel-bezeichnung aus der indexdatei auf die
- # id um sie besser vergleichen zu koennen.
- for (@keylist) {
- chomp;
- s#K.*\+.*\+(.*)#$1#;
- }
+ # kuerzt die schluessel-bezeichnung aus der indexdatei auf die
+ # id um sie besser vergleichen zu koennen.
+ for (@keylist) {
+ chomp;
+ s#K.*\+.*\+(.*)#$1#;
+ }
- # filtert alle schluessel aus der zonedatei
- # old_zone_content ==> new_zone_content
- for (@old_zone_content) {
- unless (/IN\sDNSKEY/) {
- push @new_zone_content, $_;
- }
- }
+ # filtert alle schluessel aus der zonedatei
+ # old_zone_content ==> new_zone_content
+ for (@old_zone_content) {
+ unless (/IN\sDNSKEY/) {
+ push @new_zone_content, $_;
+ }
+ }
- # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen
- # indexdatei beschrieben sind. wenn nicht werden sie geloescht.
- for (`ls $master_dir/$zone/K*[key,private]`){
- chomp;
- $file = $_;
- my $rm_count = 1;
+ # prueft alle schluesseldateien (ksk, zsk) ob sie in der jeweiligen
+ # indexdatei beschrieben sind. wenn nicht werden sie geloescht.
+ for (`ls $master_dir/$zone/K*[key,private]`) {
+ chomp;
+ $file = $_;
+ my $rm_count = 1;
+
+ for (@keylist) {
- for (@keylist) {
+ if ( $file =~ /$_/ ) {
+ $rm_count = 0;
- if ($file =~ /$_/) {
- $rm_count = 0;
+ # schluessel die in der indexdatei standen, werden an die
+ # zonedatei angehangen.
+ if ( $file =~ /.*key/ ) {
+ open( KEYFILE, "$file" ) or die "$file: $!\n";
+ push @new_zone_content, <KEYFILE>;
+ close(KEYFILE);
- # schluessel die in der indexdatei standen, werden an die
- # zonedatei angehangen.
- if ($file =~ /.*key/) {
- open (KEYFILE, "$file") or die "$file: $!\n";
- push @new_zone_content, <KEYFILE>;
- close (KEYFILE);
-
- last;
- }
- }
- }
+ last;
+ }
+ }
+ }
- #loescht alle unbenoetigten schluessel
- if ($rm_count == 1) {
- print `rm -f $file`;
- }
- }
+ #loescht alle unbenoetigten schluessel
+ if ( $rm_count == 1 ) {
+ print `rm -f $file`;
+ }
+ }
- open (ZONE, ">$master_dir/$zone/$zone") or die "$master_dir/$zone/$zone: $!\n";
- print ZONE @new_zone_content;
- close (ZONE);
-
- print "$master_dir/$zone/$zone wurde neu erstellt \n";
+ open( ZONE, ">$master_dir/$zone/$zone" )
+ or die "$master_dir/$zone/$zone: $!\n";
+ print ZONE @new_zone_content;
+ close(ZONE);
+
+ print "$master_dir/$zone/$zone wurde neu erstellt \n";
}
--- a/dnssec-sign Thu Aug 05 10:49:36 2010 +0200
+++ b/dnssec-sign Mon Aug 09 11:45:43 2010 +0200
@@ -4,115 +4,116 @@
use warnings;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-for (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
+close(CONFIG);
-my $master_dir=$config{master_dir} ;
-my $sign_alert_time=$config{sign_alert_time};
+my $master_dir = $config{master_dir};
+my $sign_alert_time = $config{sign_alert_time};
my $zone;
-my (@manu, @auto);
+my ( @manu, @auto );
my @zone_sig_content;
my $sig_date;
my $kc;
# prueft zonen aus ARGV und fuegt sie in die liste @manu ein
for (@ARGV) {
- chomp (my $zone = `idn --quiet "$_"`);
+ chomp( my $zone = `idn --quiet "$_"` );
- if (-e "$master_dir/$zone") {
- push @manu, $zone;
- } else {
- print "$zone ist keine verwaltete zone \n";
- }
+ if ( -e "$master_dir/$zone" ) {
+ push @manu, $zone;
+ }
+ else {
+ print "$zone ist keine verwaltete zone \n";
+ }
}
-chomp (my $unixtime=`date +%s`);
-$unixtime = $unixtime + (3600 * $sign_alert_time);
+chomp( my $unixtime = `date +%s` );
+$unixtime = $unixtime + ( 3600 * $sign_alert_time );
my $time = `date -d \@$unixtime +%Y%m%d%H`;
# vergleicht fuer alle zonen im ordner $master_dir mit einer
# <zone>.signed-datei den zeitpunkt in $time mit dem ablaufdatum der
# signatur, welcher aus der datei <zone>.signed ausgelesen wird.
for (<$master_dir/*>) {
- s#($master_dir/)(.*)#$2#;
- $zone = $_;
+ s#($master_dir/)(.*)#$2#;
+ $zone = $_;
- if (-e "$master_dir/$zone/$zone.signed") {
+ if ( -e "$master_dir/$zone/$zone.signed" ) {
- open (ZONE, "$master_dir/$zone/$zone.signed");
- @zone_sig_content = <ZONE>;
- close (ZONE);
+ open( ZONE, "$master_dir/$zone/$zone.signed" );
+ @zone_sig_content = <ZONE>;
+ close(ZONE);
- for (@zone_sig_content) {
- if (m#SOA.*[0-9]{14}#) {
- s#.*([0-9]{10})([0-9]{4}).*#$1#;
- if ($_ < $time) {
- push @auto, $zone;
- }
- }
- }
- }
+ for (@zone_sig_content) {
+ if (m#SOA.*[0-9]{14}#) {
+ s#.*([0-9]{10})([0-9]{4}).*#$1#;
+ if ( $_ < $time ) {
+ push @auto, $zone;
+ }
+ }
+ }
+ }
}
#gibt zonen mit schluessel aber ohne signatur in die liste @auto
for (<$master_dir/*>) {
- s#($master_dir/)(.*)#$2#;
- $zone = $_;
+ s#($master_dir/)(.*)#$2#;
+ $zone = $_;
- if (-e "$master_dir/$zone/.keycounter") {
+ if ( -e "$master_dir/$zone/.keycounter" ) {
- open (KC, "$master_dir/$zone/.keycounter" );
- $kc = <KC>;
- close (KC);
+ open( KC, "$master_dir/$zone/.keycounter" );
+ $kc = <KC>;
+ close(KC);
- if ( $kc < 1) {
- push @auto, $zone;
- }
- }
+ if ( $kc < 1 ) {
+ push @auto, $zone;
+ }
+ }
}
# signiert alle zonen in @auto und @manu und erhoeht den wert in
# der keycounter-datei
-for (@auto, @manu) {
- $zone = $_ ;
+for ( @auto, @manu ) {
+ $zone = $_;
- chdir "$master_dir/$zone";
+ chdir "$master_dir/$zone";
- if (`dnssec-signzone $zone 2>/dev/null`) {
- print "$zone neu signiert \n";
+ if (`dnssec-signzone $zone 2>/dev/null`) {
+ print "$zone neu signiert \n";
- open (KC, "$master_dir/$zone/.keycounter" );
- $kc = <KC>;
- close (KC);
- $kc += 1;
- open (KC, ">$master_dir/$zone/.keycounter" );
- print KC $kc;
- close (KC);
+ open( KC, "$master_dir/$zone/.keycounter" );
+ $kc = <KC>;
+ close(KC);
+ $kc += 1;
+ open( KC, ">$master_dir/$zone/.keycounter" );
+ print KC $kc;
+ close(KC);
- } else {
- print "$zone konnte nicht signiert werden \n";
- }
+ }
+ else {
+ print "$zone konnte nicht signiert werden \n";
+ }
}
--- a/dnstools.conf Thu Aug 05 10:49:36 2010 +0200
+++ b/dnstools.conf Mon Aug 09 11:45:43 2010 +0200
@@ -1,9 +1,9 @@
bind_dir = /etc/bind
master_dir = /etc/bind/master
zone_conf_dir = /etc/bind/zones.d
-key_counter_end = 5 # Anzahl der maximalen Signierungen bis zum Key-Rollover
-sign_alert_time = 48 # Warn-Zeitraum vor dem ablauf einer Zone-Signatur in h
-abl_zeit = 48 # Dauer des Key-Rollover in h
+key_counter_end = 5 # Anzahl der Signierungen bis zum Key-Rollover
+sign_alert_time = 48 # Warn-Zeitraum vor dem Ablauf einer Zone-Signatur in h
+abl_zeit = 48 # Dauer des Key-Rollover (2 Schluessel) in h
secondary = hh.schlittermann.de
primary = pu.schlittermann.de
#this_host
--- a/mkready Thu Aug 05 10:49:36 2010 +0200
+++ b/mkready Mon Aug 09 11:45:43 2010 +0200
@@ -3,105 +3,104 @@
use strict;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-foreach (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+foreach ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
+close(CONFIG);
-my $bind_dir = $config{bind_dir};
-my $conf_dir = $config{zone_conf_dir};
+my $bind_dir = $config{bind_dir};
+my $conf_dir = $config{zone_conf_dir};
my $master_dir = $config{master_dir};
-unless (-d $master_dir and -r $master_dir) {
- die "$master_dir: $!\n";
+unless ( -d $master_dir and -r $master_dir ) {
+ die "$master_dir: $!\n";
}
-unless (-d $bind_dir and -r $bind_dir) {
- die "$bind_dir: $!\n";
+unless ( -d $bind_dir and -r $bind_dir ) {
+ die "$bind_dir: $!\n";
}
# prueft jede domain, die ein verzeichnis in $master_dir hat, ob es eine
-# datei $zone_file.signed gibt und ob diese datei in $config_file eingetragen
+# datei $zone_file.signed gibt und ob diese datei in $config_file eingetragen
# ist.
# passt die eintraege in $config_file falls noetig an.
while (<$master_dir/*>) {
- s#($master_dir/)(.*)#$2#;
- my $zone = $_;
+ s#($master_dir/)(.*)#$2#;
+ my $zone = $_;
- my $zone_file = "$master_dir/$zone/$zone";
- my $conf_file = "$conf_dir/$zone";
- my @c_content;
+ my $zone_file = "$master_dir/$zone/$zone";
+ my $conf_file = "$conf_dir/$zone";
+ my @c_content;
- unless (-f "$conf_file" ) {
- die "$conf_file: $! \n";
- }
+ unless ( -f "$conf_file" ) {
+ die "$conf_file: $! \n";
+ }
- if (-f "$zone_file.signed") {
+ if ( -f "$zone_file.signed" ) {
- open (FILE, "<$conf_file") or die "$conf_file: $!\n";
- @c_content = <FILE>;
- close (FILE);
+ open( FILE, "<$conf_file" ) or die "$conf_file: $!\n";
+ @c_content = <FILE>;
+ close(FILE);
- for (@c_content) {
- if (m{(.*)($zone_file)(";)}) {
- print "$2 ==> $2.signed\n";
- $_ = "$1$2.signed$3\n";
- }
+ for (@c_content) {
+ if (m{(.*)($zone_file)(";)}) {
+ print "$2 ==> $2.signed\n";
+ $_ = "$1$2.signed$3\n";
+ }
- open (FILE, ">$conf_file") or die "$conf_file: $!\n";
- print FILE @c_content;
- close (FILE);
+ open( FILE, ">$conf_file" ) or die "$conf_file: $!\n";
+ print FILE @c_content;
+ close(FILE);
- }
- }
- else {
+ }
+ }
+ else {
+
+ open( FILE, "<$conf_file" ) or die "$conf_file: $!\n";
+ @c_content = <FILE>;
+ close(FILE);
- open (FILE, "<$conf_file") or die "$conf_file: $!\n";
- @c_content = <FILE>;
- close (FILE);
-
- for (@c_content) {
- if (m{(.*)($zone_file)\.signed(.*)}) {
- print "$2.signed ==> $2\n";
- $_ = "$1$2$3\n";
- }
- }
+ for (@c_content) {
+ if (m{(.*)($zone_file)\.signed(.*)}) {
+ print "$2.signed ==> $2\n";
+ $_ = "$1$2$3\n";
+ }
+ }
- open (FILE, ">$conf_file") or die "$conf_file: $!\n";
- print FILE @c_content;
- close (FILE);
- }
+ open( FILE, ">$conf_file" ) or die "$conf_file: $!\n";
+ print FILE @c_content;
+ close(FILE);
+ }
}
# erzeugt eine named.conf-datei aus den entsprechenden vorlagen.
-open( TO, ">$bind_dir/named.conf.zones") or die "$bind_dir/named.conf.zones: $!\n";
+open( TO, ">$bind_dir/named.conf.zones" )
+ or die "$bind_dir/named.conf.zones: $!\n";
while (<$conf_dir/*>) {
- open (FROM, "$_") or die "$_: $! \n";
- print TO <FROM>;
- close (FROM);
+ open( FROM, "$_" ) or die "$_: $! \n";
+ print TO <FROM>;
+ close(FROM);
}
close(TO);
-
system "named-checkconf";
system "named-checkconf -z";
system "rndc reload";
--- a/zone-ls Thu Aug 05 10:49:36 2010 +0200
+++ b/zone-ls Mon Aug 09 11:45:43 2010 +0200
@@ -5,86 +5,94 @@
use File::Basename;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-for (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
-
+close(CONFIG);
my $master_dir = $config{master_dir};
-my $zone;
-my ($info_zsk, $info_ksk, $info_kc, $info_end);
+my $zone;
+my ( $info_zsk, $info_ksk, $info_kc, $info_end, $info_status );
-unless (-d $master_dir and -r $master_dir) {
- die "$master_dir: $!\n";
+unless ( -d $master_dir and -r $master_dir ) {
+ die "$master_dir: $!\n";
}
-
-printf "%-25s %1s/%1s %3s %7s\n", "Domain", "ZSK", "KSK", "Used", "Sig-end";
+printf "%-25s %-8s %1s/%1s %3s %7s\n", "Domain", "Status", "ZSK", "KSK", "Used", "Sig-end";
-foreach my $dir (glob "$master_dir/*") {
-
- $zone = basename($dir);
+for my $dir ( glob "$master_dir/*" ) {
+
+ $zone = basename($dir);
- if (not -f "$dir/.index.zsk") {
- $info_zsk = $info_ksk = $info_kc = 0;
- $info_end = "-";
- next;
+ # prueft mit dig nach der zone
+ $info_status = "OK";
+ for (`dig \@localhost $zone`) {
+ if (/root-servers/) {
+ $info_status = "FAILD";
+ last;
}
+ }
- # prueft wie viele zsks genutzt werden
- close(FILE);
- open(FILE, $_ = "<$dir/.index.zsk") or die "Can't open $_: $!\n";
- () = <FILE>;
- $info_zsk = $.;
+ if ( not -f "$dir/.index.zsk" ) {
+ $info_zsk = $info_ksk = $info_kc = 0;
+ $info_end = "-";
+ next;
+ }
- # prueft wie viele ksks genutzt werden
- close(FILE);
- open(FILE, $_ = "<$dir/.index.ksk") or die "Can't open $_: $!\n";
- () = <FILE>;
- $info_ksk = $.;
+ # prueft wie viele zsks genutzt werden
+ close(FILE);
+ open( FILE, $_ = "<$dir/.index.zsk" ) or die "Can't open $_: $!\n";
+ () = <FILE>;
+ $info_zsk = $.;
- # prueft wie oft die schluessel zum signieren genutzt wurden
- open(FILE, $_ = "<$dir/.keycounter") or die "Can't open $_: $!\n";
- chomp ($info_kc = <FILE>);
+ # prueft wie viele ksks genutzt werden
+ close(FILE);
+ open( FILE, $_ = "<$dir/.index.ksk" ) or die "Can't open $_: $!\n";
+ () = <FILE>;
+ $info_ksk = $.;
- # prueft das ablaufdatum
- if (!-f "$dir/$zone.signed") {
- $info_end = "-";
- next;
- }
-
- open(FILE, $_ = "<$dir/$zone.signed") or die "Can't open $_: $!\n";
- while (<FILE>) {
- $info_end = "$+{day}.$+{mon}.$+{year} $+{hour}:$+{min}"
- if /RSIG.*SOA.*\s
+ # prueft wie oft die schluessel zum signieren genutzt wurden
+ open( FILE, $_ = "<$dir/.keycounter" ) or die "Can't open $_: $!\n";
+ chomp( $info_kc = <FILE> );
+
+ # prueft das ablaufdatum
+ if ( !-f "$dir/$zone.signed" ) {
+ $info_end = "-";
+ next;
+ }
+
+ open( FILE, $_ = "<$dir/$zone.signed" ) or die "Can't open $_: $!\n";
+ while (<FILE>) {
+ $info_end = "$+{day}.$+{mon}.$+{year} $+{hour}:$+{min}"
+ if /RSIG.*SOA.*\s
(?<year>\d\d\d\d)
(?<mon>\d\d)
(?<day>\d\d)
(?<hour>\d\d)
(?<min>\d\d)\d+\s\(/ix;
- }
+ }
-} continue {
- printf "%-25s %1d/%1d %5d %19s\n", $zone, $info_zsk, $info_ksk, $info_kc, $info_end;
+}
+continue {
+ printf "%-25s %-8s %1d/%1d %5d %19s\n", $zone, $info_status, $info_zsk, $info_ksk, $info_kc,
+ $info_end;
}
--- a/zone-mk Thu Aug 05 10:49:36 2010 +0200
+++ b/zone-mk Mon Aug 09 11:45:43 2010 +0200
@@ -3,128 +3,132 @@
use strict;
use FindBin;
-if (@ARGV < 2) {
- print "usage: zone-mk kundennummer domain ... \n";
- exit 1;
+if ( @ARGV < 2 ) {
+ print "usage: zone-mk kundennummer domain ... \n";
+ exit 1;
}
# oeffnet Konfigurations- und Templatefiles - relativ oder absolut
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
-my @templc = ("$FindBin::Bin/templates/named.config","/etc/dnstools/templates/named.config");
-my @templz = ("$FindBin::Bin/templates/named.zone","/etc/dnstools/templates/named.zone");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
+my @templc = (
+ "$FindBin::Bin/templates/named.config",
+ "/etc/dnstools/templates/named.config"
+);
+my @templz = (
+ "$FindBin::Bin/templates/named.zone",
+ "/etc/dnstools/templates/named.zone"
+);
my %config;
-for (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n";
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
-for (grep {-f} @templc) {
- open(TEMPCONF, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @templc ) {
+ open( TEMPCONF, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(TEMPCONF,0 ,0 )) {
- die "Can't open config (searched: @templc)\n";
+unless ( seek( TEMPCONF, 0, 0 ) ) {
+ die "Can't open config (searched: @templc)\n";
}
-for (grep {-f} @templz) {
- open(TEMPZONE, $_) or die "Can't open $_: $!\n";
+for ( grep {-f} @templz ) {
+ open( TEMPZONE, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(TEMPZONE,0 ,0 )) {
- die "Can't open config (searched: @templz)\n";
+unless ( seek( TEMPZONE, 0, 0 ) ) {
+ die "Can't open config (searched: @templz)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
-
+close(CONFIG);
-my $primary = $config{primary};
-my $secondary= $config{secondary};
-my $zone_conf_dir= $config{zone_conf_dir};
-my $master_dir = $config{master_dir};
-my $customer = shift @ARGV;
-chomp (my $primary_ip = `dig +short $primary`);
-chomp (my $secondary_ip = `dig +short $secondary`);
-chomp (my $this_host= `hostname -f`);
-chomp (my $this_ip= `hostname -i`);
-chomp (my $this_domain = `hostname -d`);
-chomp (my $time = `date +%Y%m%d00`);
-chomp (my $start= `date -I`);
+my $primary = $config{primary};
+my $secondary = $config{secondary};
+my $zone_conf_dir = $config{zone_conf_dir};
+my $master_dir = $config{master_dir};
+my $customer = shift @ARGV;
+chomp( my $primary_ip = `dig +short $primary` );
+chomp( my $secondary_ip = `dig +short $secondary` );
+chomp( my $this_host = `hostname -f` );
+chomp( my $this_ip = `hostname -i` );
+chomp( my $this_domain = `hostname -d` );
+chomp( my $time = `date +%Y%m%d00` );
+chomp( my $start = `date -I` );
my $hostmaster = "hostmaster.$this_domain";
-unless (-d $master_dir and -r $master_dir) {
- die "$master_dir: $!\n";
+unless ( -d $master_dir and -r $master_dir ) {
+ die "$master_dir: $!\n";
}
-unless (-d $zone_conf_dir and -r $zone_conf_dir) {
- die "$master_dir: $!\n";
+unless ( -d $zone_conf_dir and -r $zone_conf_dir ) {
+ die "$master_dir: $!\n";
}
-
# legt fuer jede domain in @ARGV ein verzeichnis in $master_dir an.
# schreibt aus den angegebenen templates die dateien $zonefile und $config
# in die entsprechenden verzeichnisse.
for (@ARGV) {
- chomp (my $domain = `idn --quiet "$_"`);
- my $zonefile = "$master_dir/$domain/$domain";
- my $config = "$zone_conf_dir/$domain";
- my $utf8domain = "$_";
+ chomp( my $domain = `idn --quiet "$_"` );
+ my $zonefile = "$master_dir/$domain/$domain";
+ my $config = "$zone_conf_dir/$domain";
+ my $utf8domain = "$_";
- unless ( -d "$master_dir/$domain") {
- `mkdir $master_dir/$domain`;
- }
+ unless ( -d "$master_dir/$domain" ) {
+ `mkdir $master_dir/$domain`;
+ }
- if (-f $zonefile) {
- $zonefile =~ s#/.*/##;
- print "$zonefile exists. Skipping $domain\n";
- next;
- }
- if (-f $config) {
- $config =~ s#/.*/##;
- print "$config exists. Skipping $domain\n";
- next;
- }
+ if ( -f $zonefile ) {
+ $zonefile =~ s#/.*/##;
+ print "$zonefile exists. Skipping $domain\n";
+ next;
+ }
+ if ( -f $config ) {
+ $config =~ s#/.*/##;
+ print "$config exists. Skipping $domain\n";
+ next;
+ }
- print "$domain ($_) for $customer \n";
+ print "$domain ($_) for $customer \n";
- my @tempzone = <TEMPZONE>;
- for (@tempzone) {
- s#<start>#$start#;
- s#<domain>#$domain#;
- s#<time>#$time#;
- s#<primary>#$primary#;
- s#<secondary>#$secondary#;
- s#<hostmaster>#$hostmaster#;
- s#<customer>#$customer#;
- s#<utf8domain>#$utf8domain#;
- }
+ my @tempzone = <TEMPZONE>;
+ for (@tempzone) {
+ s#<start>#$start#;
+ s#<domain>#$domain#;
+ s#<time>#$time#;
+ s#<primary>#$primary#;
+ s#<secondary>#$secondary#;
+ s#<hostmaster>#$hostmaster#;
+ s#<customer>#$customer#;
+ s#<utf8domain>#$utf8domain#;
+ }
- open (ZONEOUT, ">$zonefile");
- print ZONEOUT @tempzone;
- close (ZONEOUT);
+ open( ZONEOUT, ">$zonefile" );
+ print ZONEOUT @tempzone;
+ close(ZONEOUT);
- my @tempconf = <TEMPCONF>;
- for (@tempconf) {
- s#<domain>#$domain#;
- s#<start>#$start#;
- s#<customer>#$customer#;
- s#<utf8domain>#$utf8domain#;
- s#<file>#$master_dir/$domain/$domain#;
- s#<primary_ip>#$primary_ip#;
- s#<secondary_ip>#$secondary_ip#;
- }
+ my @tempconf = <TEMPCONF>;
+ for (@tempconf) {
+ s#<domain>#$domain#;
+ s#<start>#$start#;
+ s#<customer>#$customer#;
+ s#<utf8domain>#$utf8domain#;
+ s#<file>#$master_dir/$domain/$domain#;
+ s#<primary_ip>#$primary_ip#;
+ s#<secondary_ip>#$secondary_ip#;
+ }
- open (CONFOUT, ">$config" );
- print CONFOUT @tempconf;
- close (CONFOUT);
+ open( CONFOUT, ">$config" );
+ print CONFOUT @tempconf;
+ close(CONFOUT);
}
--- a/zone-rm Thu Aug 05 10:49:36 2010 +0200
+++ b/zone-rm Mon Aug 09 11:45:43 2010 +0200
@@ -4,51 +4,48 @@
use File::Path;
use FindBin;
-
# liest die Konfiguration ein
-my @configs = ("$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf");
+my @configs = ( "$FindBin::Bin/dnstools.conf", "/etc/dnstools.conf" );
my %config;
-foreach (grep {-f} @configs) {
- open(CONFIG, $_) or die "Can't open $_: $!\n";
+foreach ( grep {-f} @configs ) {
+ open( CONFIG, $_ ) or die "Can't open $_: $!\n";
}
-unless (seek(CONFIG,0 ,0 )) {
- die "Can't open config (searched: @configs)\n"
+unless ( seek( CONFIG, 0, 0 ) ) {
+ die "Can't open config (searched: @configs)\n";
}
while (<CONFIG>) {
- chomp;
- s/#.*//;
- s/\t//g;
- s/\s//g;
- next unless length;
- my ($cname, $ccont) = split (/\s*=\s*/, $_,2);
- $config{$cname} = $ccont;
+ chomp;
+ s/#.*//;
+ s/\t//g;
+ s/\s//g;
+ next unless length;
+ my ( $cname, $ccont ) = split( /\s*=\s*/, $_, 2 );
+ $config{$cname} = $ccont;
}
-close (CONFIG);
-
+close(CONFIG);
my $master_dir = $config{"master_dir"};
-my $conf_dir = $config{"zone_conf_dir"};
-
+my $conf_dir = $config{"zone_conf_dir"};
for (@ARGV) {
- chomp (my $zone = `idn --quiet "$_"`);
+ chomp( my $zone = `idn --quiet "$_"` );
- if (-d "$master_dir/$zone") {
- rmtree "$master_dir/$zone/" and
- print "zone-dir for $zone removed\n";
- }
- else {
- print "$master_dir/$zone: $!\n";
- }
-
- if (-e "$conf_dir/$zone") {
- unlink "$conf_dir/$zone" and
- print "configuration-file for $zone removed\n";
- }
- else {
- print "$conf_dir/$zone: $!\n";
- }
+ if ( -d "$master_dir/$zone" ) {
+ rmtree "$master_dir/$zone/"
+ and print "zone-dir for $zone removed\n";
+ }
+ else {
+ print "$master_dir/$zone: $!\n";
+ }
+
+ if ( -e "$conf_dir/$zone" ) {
+ unlink "$conf_dir/$zone"
+ and print "configuration-file for $zone removed\n";
+ }
+ else {
+ print "$conf_dir/$zone: $!\n";
+ }
}