#!/bin/bash # info: synchronize dns domains # options: HOST # The function synchronize all dns domains. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument definition host=$1 # Includes source $VESTA/func/main.sh source $VESTA/func/remote.sh source $VESTA/conf/vesta.conf #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' is_procces_running remote_dns_health_check 'no_email' #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Selecting remote hosts IFS=$'\n' if [ -z $host ]; then hosts=$(cat $VESTA/conf/dns-cluster.conf |grep "SUSPENDED='no'") else hosts=$(grep "HOST='$host'" $VESTA/conf/dns-cluster.conf) fi # Starting cluster loop for cluster in $hosts; do # Parsing host values eval $cluster # Wiping remote domains cluster_cmd v-delete-dns-domains-src $DNS_USER $HOSTNAME no check_result $? "$HOST connection failed" $E_CONNECT # Syncing user domains user_list=$(ls -d $VESTA/data/users/*/ | sed "s#$VESTA/data/users/##" | sed s"/.$//" | grep -v "dns-cluster") for user in $user_list; do for str in $(cat $VESTA/data/users/$user/dns.conf); do # Syncing domain index eval $str cluster_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME ' ' no check_result $? "$HOST connection failed" $E_CONNECT # Syncing domain records tmp_file="/tmp/vst-sync.$DOMAIN" cluster_file $USER_DATA/$user/dns/$DOMAIN.conf $tmp_file check_result $? "$HOST connection failed" $E_CONNECT cluster_cmd v-insert-dns-records $DNS_USER $DOMAIN $tmp_file 'no' check_result $? "$HOST connection failed" $E_CONNECT done done # Rebuilding dns zones cluster_cmd v-rebuild-dns-domains $DNS_USER check_result $? "$TYPE connection to $HOST failed" $E_CONNECT done #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Flushing dns-cluster queue rm -f $VESTA/data/queue/dns-cluster.pipe touch $VESTA/data/queue/dns-cluster.pipe chmod 660 $VESTA/data/queue/dns-cluster.pipe exit