Mercurial > hg > anonet-resdb
comparison scripts/nameserver_autogen/bind_tld_zonefile_all.sh @ 1170:44da84ec0c43 draft
forked bind_told_zonefile.sh to do all TLDs in resdb instead of just ano.
author | epoch <epoch@hacking.allowed.ano> |
---|---|
date | Thu, 17 Jul 2014 04:20:09 +0000 |
parents | |
children | 135e7c234e24 |
comparison
equal
deleted
inserted
replaced
1169:474071fa6e61 | 1170:44da84ec0c43 |
---|---|
1 #!/bin/bash | |
2 #made for bash. not sure if all /bin/sh work. | |
3 #be sure to edit these variables first. | |
4 | |
5 #zonefiles are named after the TLD they're for. | |
6 #make sure not to clobber any files. ;) | |
7 | |
8 #ZONEFILE_DIR=/etc/namedb | |
9 #RDNS_ZONEFILE=/etc/namedb/1.in-addr.arpa | |
10 #RESDB_PATH=/var/db/resdb | |
11 | |
12 if [ ! "$ZONEFILE_DIR" ];then | |
13 echo "You forgot to set some variables. read the source plzkthx." | |
14 exit 0; | |
15 fi | |
16 | |
17 | |
18 echo -n "generating ipv4 reverse lookup zonefile for 1/8..." | |
19 | |
20 echo "; this zonefile genreated on: `date`" > "$RDNS_ZONEFILE" | |
21 echo '$TTL 3600' >> "$RDNS_ZONEFILE" | |
22 echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE" | |
23 echo '@ IN NS localhost.' >> "$RDNS_ZONEFILE" | |
24 echo 'localhost. IN A 127.0.0.1' >> "$RDNS_ZONEFILE" | |
25 | |
26 for i in `ls ${RESDB_PATH}/db/ip/01/*/*/ns/*`;do | |
27 f=$(basename $i) | |
28 a=$(basename $(dirname $i)) | |
29 b=$(basename $(dirname $(dirname $i))) | |
30 c=$(basename $(dirname $(dirname $(dirname $i)))) | |
31 printf "%d.%d IN NS %s\n" $[0x${b}] $[0x${c}] ${f}. | |
32 done >> "$RDNS_ZONEFILE" | |
33 echo done. | |
34 | |
35 for GOHERE in ${RESDB_PATH}/db/dom/*;do | |
36 | |
37 cd ${GOHERE} | |
38 TLD=$(basename ${GOHERE}) | |
39 ANO_ZONEFILE=${ZONEFILE_DIR}/${TLD} | |
40 echo -n generating .${TLD} TLD zonefile... | |
41 echo "; this zonefile genreated on: `date`" > "$ANO_ZONEFILE" | |
42 echo '$TTL 3600' >> "$ANO_ZONEFILE" | |
43 echo '@ IN SOA localhost. root.localhost. ('`date +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$ANO_ZONEFILE" | |
44 echo '@ IN NS localhost.' >> "$ANO_ZONEFILE" | |
45 echo 'localhost. IN A 127.0.0.1' >> "$ANO_ZONEFILE" | |
46 | |
47 for name in *;do | |
48 if [ -e "${name}/ns/" ];then | |
49 for server in "$name"/ns/*;do | |
50 if grep '\.ano$' <<< "$name" > /dev/null;then | |
51 true | |
52 fi | |
53 if grep '\.ano$' <<< "$server" > /dev/null;then | |
54 true | |
55 fi | |
56 fqserver=`cut -d/ -f3- <<< $server` | |
57 echo -e "${name}\tIN NS\t${fqserver}." | |
58 for ip in `cat ${server}`;do | |
59 if grep ':' <<< "$ip" > /dev/null;then | |
60 echo -e "${fqserver}.\tIN AAAA\t$ip" | |
61 else | |
62 echo -e "${fqserver}.\tIN A\t$ip" | |
63 fi | |
64 done | |
65 done | |
66 fi | |
67 done >> "$ANO_ZONEFILE" | |
68 echo done with ${TLD} | |
69 done | |
70 | |
71 echo might want to send a sighup to your named now. |