Mercurial > hg > anonet-resdb
comparison scripts/nameserver_autogen/bind_tld_zonefile_all.sh @ 1199:dfda92fd4ec3 draft
rewrite bind tld zonefile generators
author | cathugger <cathugger@cock.li> |
---|---|
date | Fri, 17 Nov 2017 08:59:16 +0000 |
parents | 56c959ab3e05 |
children | 4e07b815084b |
comparison
equal
deleted
inserted
replaced
1198:93f2650b65c0 | 1199:dfda92fd4ec3 |
---|---|
1 #!/bin/bash | 1 #!/bin/sh |
2 #made for bash. not sure if all /bin/sh work. | 2 # be sure to set these variables first. |
3 #be sure to edit these variables first. | 3 #ANO_ZONEFILE=/etc/namedb/ano |
4 | |
5 #ZONEFILE_DIR=/etc/namedb | |
6 #RDNS_ZONEFILE=/etc/namedb/21.in-addr.arpa | 4 #RDNS_ZONEFILE=/etc/namedb/21.in-addr.arpa |
7 #RESDB_PATH=/var/db/resdb | 5 #RESDB_PATH=/services/resdb/resdb |
8 | 6 if [ ! "$ANO_ZONEFILE" ];then |
9 if [ ! "$ZONEFILE_DIR" ];then | 7 echo "You forgot to set some variables. read the source plzkthx." >&2 |
10 echo "You forgot to set some variables. read the source plzkthx." | 8 exit 1 |
11 exit 0; | |
12 fi | 9 fi |
13 | 10 # compat |
14 | 11 export ZONEFILE_DIR=`dirname $RDNS_ZONEFILE` |
15 echo -n "generating ipv4 reverse lookup zonefile for 21/8..." | 12 TLDS='!' `dirname $0`/bind_tld_zonefile.sh |
16 | 13 export ZONEFILE_DIR=`dirname $ANO_ZONEFILE` |
17 echo "; this zonefile genreated on: `date -u`" > "$RDNS_ZONEFILE" | 14 RDNS_PREFIX='!' TLDS='*' `dirname $0`/bind_tld_zonefile.sh |
18 echo '$TTL 3600' >> "$RDNS_ZONEFILE" | |
19 echo '@ IN SOA @ root ('`date -u +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$RDNS_ZONEFILE" | |
20 echo '@ IN NS @' >> "$RDNS_ZONEFILE" | |
21 echo '@ IN A 127.0.0.1' >> "$RDNS_ZONEFILE" | |
22 | |
23 for i in `ls ${RESDB_PATH}/db/ip/15/*/*/ns/*`;do #this is for 21. | |
24 f=$(basename $i) | |
25 a=$(basename $(dirname $i)) | |
26 b=$(basename $(dirname $(dirname $i))) | |
27 c=$(basename $(dirname $(dirname $(dirname $i)))) | |
28 printf "%d.%d IN NS %s\n" $[0x${b}] $[0x${c}] ${f}. | |
29 done >> "$RDNS_ZONEFILE" | |
30 echo done. | |
31 | |
32 for GOHERE in ${RESDB_PATH}/db/dom/*;do | |
33 | |
34 cd ${GOHERE} | |
35 TLD=$(basename ${GOHERE}) | |
36 ANO_ZONEFILE=${ZONEFILE_DIR}/${TLD} | |
37 echo -n generating .${TLD} TLD zonefile... | |
38 echo "; this zonefile genreated on: `date -u`" > "$ANO_ZONEFILE" | |
39 echo '$TTL 3600' >> "$ANO_ZONEFILE" | |
40 echo '@ IN SOA @ root ('`date -u +" %Y%m%d%H"`' 60 300 3600000 3600 )' >> "$ANO_ZONEFILE" | |
41 echo '@ IN NS @' >> "$ANO_ZONEFILE" | |
42 echo '@ IN A 127.0.0.1' >> "$ANO_ZONEFILE" | |
43 | |
44 for name in *;do | |
45 if [ -e "${name}/ns/" ];then | |
46 for server in "$name"/ns/*;do | |
47 if grep '\.ano$' <<< "$name" > /dev/null;then | |
48 true | |
49 fi | |
50 if grep '\.ano$' <<< "$server" > /dev/null;then | |
51 true | |
52 fi | |
53 fqserver=`cut -d/ -f3- <<< $server` | |
54 echo -e "${name}\tIN NS\t${fqserver}." | |
55 for ip in $(cat ${server});do | |
56 if grep ':' <<< "$ip" > /dev/null;then | |
57 printf '%s.\tIN AAAA\t%s\n' "${fqserver}" "${ip}" | |
58 else | |
59 printf '%s.\tIN A\t%s\n' "${fqserver}" "${ip}" | |
60 fi | |
61 done | |
62 done | |
63 fi | |
64 done >> "$ANO_ZONEFILE" | |
65 echo done with ${TLD} | |
66 done | |
67 | |
68 echo might want to send a sighup to your named now. |