I use following scripts to migrate DNS records from any DNS server: getdomain:
#!/bin/sh SUCCESS=0; DOMAIN=$1; NAMESERVERS=`dig -t NS $DOMAIN | grep 'IN NS' | sed 's/.*NS //'` if test $? != 0; then echo "Unable to fetch domain"; exit 1; fi for NAMESERVER in $NAMESERVERS; do if test $SUCCESS = 0; then RESULT=`named-xfer -f /tmp/$DOMAIN -z $DOMAIN $NAMESERVER 2> /dev/null`; fi if test $? = 4; then SUCCESS=1; fi done DOMAINCONTENTS=`cat /tmp/$DOMAIN 2>/dev/null`; if test $? != 0; then echo "Unable to fetch domain"; exit 1; fi ./ipdomain $DOMAIN; rm /tmp/$DOMAIN ipdomain: #!/usr/bin/perl my $DOMAIN=$ARGV[0]; my $DOMAINCONTENTS="cat /tmp/$DOMAIN"; my $NSHOSTM=`$DOMAINCONTENTS| grep SOA | sed 's/.*SOA//' | tr "\\t" " " | sed 's/ *//'`; my $NS1=$NSHOSTM; $NS1=~ s/ .*//; $NS1=~ s/(.*)\./\1/; $NS1=lc($NS1); chomp($NS1); my $HOSTMASTER=$NSHOSTM; $HOSTMASTER=~ s/.* (.*) .*/\1/; $HOSTMASTER=~ s/(.*)\./\1/; $HOSTMASTER=lc($HOSTMASTER); $HOSTMASTER=~ s/\./@/; chomp($HOSTMASTER); #print "ns1: $NS1\n"; #print "hostmaster: $HOSTMASTER\n"; my $SOAVALUES=`$DOMAINCONTENTS | tr "\n\t" " "`; $SOAVALUES=~ s/.*\((.*)\).*/\1/; $SOAVALUES=~ s/ *[0-9]+ ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+).*/\1:\2:\3:\4/; #print "soavalues: $SOAVALUES\n"; my $soadetect=0; open(ZONE, "/tmp/$DOMAIN"); while (<ZONE>) { if($soadetect) { $soadetect=0; next; } chomp($_); if (!/^;/) { if (/^\$ORIGIN/) { s/\$ORIGIN (.*)\./\1/; $zone=lc($_); # print "Zone: $zone\n"; } elsif (/.*IN\tSOA\t*.*/) { s/(.*)\t[0-9]+.*/\1/; $zone=lc($_.".".$zone); $soadetect=1; # print "Zone: $zone\n"; next; } elsif (/.*IN\tNS\t.*/) { if (!/^\t/) { # STILL HAVE TO DO !!! $host=$_; $host=~ s/IN\tA\t.*//; $host=~ s/(.*)\t+[0-9]+.*/\1/; $host=lc($host); } else { $ns=$_; $ns=~ s/.*IN\tNS\t//; $ns=~ s/(.+)\./\1/; $ns=lc($ns); if ($ns ne $NS1) { if($NS2 eq "") { $NS2=$ns; } else { $NS2=$NS2."+".$ns; } } } } elsif (/.*IN\tCNAME\t.*/) { if (!/^\t/) { $host=$_; $host=~ s/IN\tCNAME\t.*//; $host=~ s/(.*)\t+[0-9]+.*/\1/; $host=lc($host); } else { $host="-"; } $chost=$_; $chost=~ s/.*IN\tCNAME\t//; $chost=~ s/\..+//; $czone=$_; $czone=~ s/.*IN\tCNAME\t//; $czone=~ s/$chost\.(.*)\./\1/; print "cname $host $zone $chost $czone\n"; } elsif (/.*IN\tMX\t.*/) { if (!/^\t/) { $host=$_; $host=~ s/IN\tA\t.*//; $host=~ s/(.*)\t+[0-9]+.*/\1/; $host=lc($host); } else { $host="-"; } $priority=$_; $priority=~ s/.*IN\tMX\t//; $priority=~ s/([0-9]+) .*/\1/; if ($priority eq "0") { $priority="Very-High"; } elsif ($priority > 0 && $priority < 51) { $priority="High"; } elsif ($priority > 50 && $priority <= 100) { $priority="Low"; } elsif ($priority > 100) { $priority="Very-Low"; } $mailhost=$_; $mailhost=~ s/.*IN\tMX\t[0-9]+ //; $mailhost=~ s/(.+)\./\1/; print "mx $host $zone $priority $mailhost\n"; } elsif (/.*IN\tA\t.*/) { if (!/^\t/) { $host=$_; $host=~ s/IN\tA\t.*//; $host=~ s/(.*)\t+[0-9]+.*/\1/; $host=lc($host); } else { $host="-"; } $ip=$_; $ip=~ s/.*IN\tA\t//; print "a $host $zone $ip 24\n"; } else { print lc($_)."\n"; } } } close ZONE; $NS1="<your nameserver hostname1>"; $NS2="<your nameserver hostname2>"; $HOSTMASTER="hostmaster\@<domainname of nameserver>"; print "soa - $DOMAIN $NS1:$NS2:$HOSTMASTER:$SOAVALUES -\n"; ----- Original Message ----- From: "Mike Moses" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, March 07, 2002 14:05 Subject: [cobalt-developers] Importing DNS Records > Has any one imported dns records into a Raq3 from a Windows 2000 dns > machine? > The text files that contain the records are all avaliable and are in > standard form. > > Thanks > > Mike Moses, MCT, MCP, CCA > Divisional President and Technical Controller > OneWorld ISP Corporation > http://www.oneworldhost.com > 902-852-4381 > > > _______________________________________________ > cobalt-developers mailing list > [EMAIL PROTECTED] > http://list.cobalt.com/mailman/listinfo/cobalt-developers > _______________________________________________ cobalt-developers mailing list [EMAIL PROTECTED] http://list.cobalt.com/mailman/listinfo/cobalt-developers