mirror of
https://github.com/myvesta/vesta
synced 2025-08-19 21:04:07 -07:00
new handy rebuild function
This commit is contained in:
parent
91794b59b9
commit
70b70c97c1
1 changed files with 132 additions and 0 deletions
132
bin/v_rebuild_dns_domains
Executable file
132
bin/v_rebuild_dns_domains
Executable file
|
@ -0,0 +1,132 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# info: rebuilding dns domains
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Variable&Function #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Argument defenition
|
||||||
|
user="$1"
|
||||||
|
|
||||||
|
# Importing variables
|
||||||
|
source $VESTA/conf/vars.conf
|
||||||
|
source $V_FUNC/shared_func.sh
|
||||||
|
source $V_FUNC/domain_func.sh
|
||||||
|
source $V_FUNC/ip_func.sh
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Verifications #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Checking arg number
|
||||||
|
check_args '1' "$#" 'user'
|
||||||
|
|
||||||
|
# Checking argument format
|
||||||
|
format_validation 'user'
|
||||||
|
|
||||||
|
# Checking dns system is enabled
|
||||||
|
is_system_enabled 'dns'
|
||||||
|
|
||||||
|
# Checking user
|
||||||
|
is_user_valid
|
||||||
|
|
||||||
|
# Checking user is active
|
||||||
|
is_user_suspended
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Action #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Checking zones folder
|
||||||
|
if [ ! -d "$V_USERS/$user/zones" ]; then
|
||||||
|
rm -f $V_USERS/$user/zones
|
||||||
|
mkdir $V_USERS/$user/zones
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Defining config
|
||||||
|
conf="$V_USERS/$user/dns.conf"
|
||||||
|
|
||||||
|
# Defining search string
|
||||||
|
search_string="DOMAIN"
|
||||||
|
|
||||||
|
# Defining fileds to select
|
||||||
|
field='$DOMAIN'
|
||||||
|
|
||||||
|
# Parsing unsuspeneded domains
|
||||||
|
domains=$(dom_clear_search)
|
||||||
|
|
||||||
|
# Defining user name servers
|
||||||
|
ns=$(get_user_value '$NS')
|
||||||
|
i=1
|
||||||
|
for nameserver in ${ns//,/ };do
|
||||||
|
eval ns$i="$nameserver"
|
||||||
|
i=$((i + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
# Starting loop
|
||||||
|
for domain in $domains; do
|
||||||
|
|
||||||
|
# Defining variables
|
||||||
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
|
ip="$(get_dns_domain_value '$IP')"
|
||||||
|
template="$(get_dns_domain_value '$TPL')"
|
||||||
|
exp="$(get_dns_domain_value '$EXP')"
|
||||||
|
soa="$(get_dns_domain_value '$SOA')"
|
||||||
|
ttl="$(get_dns_domain_value '$TTL')"
|
||||||
|
suspend="$(get_dns_domain_value '$SUSPEND')"
|
||||||
|
|
||||||
|
# Checking zone file
|
||||||
|
if [ ! -e "$V_USERS/$user/zones/$domain" ]; then
|
||||||
|
cat $V_DNSTPL/$template.tpl |\
|
||||||
|
sed -e "s/%ip%/$ip/g" \
|
||||||
|
-e "s/%domain_idn%/$domain_idn/g" \
|
||||||
|
-e "s/%domain%/$domain/g" \
|
||||||
|
-e "s/%ns1%/$ns1/g" \
|
||||||
|
-e "s/%ns2%/$ns2/g" \
|
||||||
|
-e "s/%ns3%/$ns3/g" \
|
||||||
|
-e "s/%ns4%/$ns4/g" \
|
||||||
|
-e "s/%ns5%/$ns5/g" \
|
||||||
|
-e "s/%ns6%/$ns6/g" \
|
||||||
|
-e "s/%ns7%/$ns7/g" \
|
||||||
|
-e "s/%ns8%/$ns8/g" \
|
||||||
|
-e "s/%date%/$V_DATE/g" > $V_USERS/$user/zones/$domain
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sorting records
|
||||||
|
sort_dns_records
|
||||||
|
|
||||||
|
# Updating zone
|
||||||
|
update_domain_zone
|
||||||
|
|
||||||
|
# Bind config check
|
||||||
|
nconf='/etc/named.conf'
|
||||||
|
|
||||||
|
if [ "$suspend" = 'yes' ]; then
|
||||||
|
rm_string=$(grep -n /etc/namedb/$domain.db $nconf | cut -d : -f 1)
|
||||||
|
if [ ! -z "$rm_string" ]; then
|
||||||
|
sed -i "$rm_string d" $nconf
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
check_string=$(grep /etc/namedb/$domain.db $nconf)
|
||||||
|
if [ -z "$check_string" ]; then
|
||||||
|
named="zone \"$domain_idn\""
|
||||||
|
named="$named {type master; file \"/etc/namedb/$domain.db\";};"
|
||||||
|
echo "$named" >> /etc/named.conf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
# Vesta #
|
||||||
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
# Adding task to the vesta pipe
|
||||||
|
restart_schedule 'dns'
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
log_event 'system' "$V_EVENT"
|
||||||
|
|
||||||
|
exit $OK
|
Loading…
Add table
Add a link
Reference in a new issue