add new bin/vdns-zone-def.sh
This commit is contained in:
parent
debeb16646
commit
0a347a35cf
60
bin/vdns-zone-def.sh
Executable file
60
bin/vdns-zone-def.sh
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# pdns-tools
|
||||||
|
# https://git.stack-source.com/msb/pdns-tools
|
||||||
|
# Copyright (c) 2024 Matthew Saunders Brown <matthewsaundersbrown@gmail.com>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
# load include file
|
||||||
|
source /usr/local/sbin/pdns.sh
|
||||||
|
|
||||||
|
help()
|
||||||
|
{
|
||||||
|
echo "Show default records for given domain."
|
||||||
|
echo ""
|
||||||
|
echo "usage: $thisfilename -z <zone> [-c] [-h]"
|
||||||
|
echo ""
|
||||||
|
echo " -h Print this help."
|
||||||
|
echo " -z <zone> Zone (domain name) to display default records for."
|
||||||
|
echo " -c Output in csv format instead of columns."
|
||||||
|
}
|
||||||
|
|
||||||
|
pdns:getoptions "$@"
|
||||||
|
|
||||||
|
# check for zone
|
||||||
|
if [[ -z $zone ]]; then
|
||||||
|
echo "zone is required"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
output="name,type,content"
|
||||||
|
|
||||||
|
# add SOA to output
|
||||||
|
output="$output\n$zone,SOA,$zone_default_ns $zone_defaults_mbox $serial $zone_defaults_refresh $zone_defaults_retry $zone_defaults_expire $zone_defaults_minimum"
|
||||||
|
|
||||||
|
# add each additiona record to output
|
||||||
|
for record in "${default_records[@]}"; do
|
||||||
|
# replace @ with zone
|
||||||
|
record=$(echo ${record} | sed -e "s/@/$zone/g")
|
||||||
|
|
||||||
|
# turn record row info in to array
|
||||||
|
orig_ifs="$IFS"
|
||||||
|
IFS='|'
|
||||||
|
read -r -a recordArray <<< "$record"
|
||||||
|
IFS="$orig_ifs"
|
||||||
|
|
||||||
|
# extract record info from array
|
||||||
|
rr_name=${recordArray[0]}
|
||||||
|
rr_type=${recordArray[1]}
|
||||||
|
rr_content=${recordArray[2]}
|
||||||
|
if [[ $rr_type = TXT ]]; then
|
||||||
|
rr_content="\"$rr_content\""
|
||||||
|
fi
|
||||||
|
output="$output\n$rr_name,$rr_type,$rr_content"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $csv ]]; then
|
||||||
|
echo -e $output
|
||||||
|
else
|
||||||
|
echo -e $output | column -t -s ,
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user