mirror of
https://github.com/myvesta/vesta.git
synced 2025-03-12 04:35:23 -07:00
new handy rebuild function
This commit is contained in:
parent
91794b59b9
commit
70b70c97c1
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…
x
Reference in New Issue
Block a user