diff -r 5dc44dc86f61 -r de6761ce0d5b zone-mk --- a/zone-mk Tue Dec 21 15:47:40 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use FindBin; - -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 %config; - -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"; -} - -for ( grep {-f} @templc ) { - open( TEMPCONF, $_ ) or die "Can't open $_: $!\n"; -} -unless ( seek( TEMPCONF, 0, 0 ) ) { - die "Can't open template (searched: @templc)\n"; -} - -for ( grep {-f} @templz ) { - open( TEMPZONE, $_ ) or die "Can't open $_: $!\n"; -} -unless ( seek( TEMPZONE, 0, 0 ) ) { - die "Can't open template (searched: @templz)\n"; -} - -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 $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 $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 = "$_"; - - 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; - } - - print "$domain ($_) for $customer \n"; - - my @tempzone = ; - for (@tempzone) { - s##$start#; - s##$domain#; - s#