You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					84 lines
				
				2.5 KiB
			
		
		
			
		
	
	
					84 lines
				
				2.5 KiB
			| 
											2 years ago
										 | #!/bin/bash | ||
|  | # info: change remote dns domain expiration date | ||
|  | # options: USER DOMAIN | ||
|  | # | ||
|  | # This function synchronise dns domain with the remote server. | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                Variables & Functions                     # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | # Argument definition | ||
|  | user=$1 | ||
|  | domain=$2 | ||
|  | 
 | ||
|  | # Includes | ||
|  | # shellcheck source=/etc/hestiacp/hestia.conf | ||
|  | source /etc/hestiacp/hestia.conf | ||
|  | # shellcheck source=/usr/local/hestia/func/main.sh | ||
|  | source $HESTIA/func/main.sh | ||
|  | # shellcheck source=/usr/local/hestia/func/remote.sh | ||
|  | source $HESTIA/func/remote.sh | ||
|  | # load config file | ||
|  | source_conf "$HESTIA/conf/hestia.conf" | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                    Verifications                         # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | check_args '2' "$#" 'USER DOMAIN' | ||
|  | is_format_valid 'user' 'domain' | ||
|  | is_system_enabled "$DNS_CLUSTER" 'DNS_CLUSTER' | ||
|  | is_object_valid 'user' 'USER' "$user" | ||
|  | is_object_valid 'dns' 'DOMAIN' "$domain" | ||
|  | is_procces_running | ||
|  | remote_dns_health_check | ||
|  | 
 | ||
|  | # Perform verification if read-only mode is enabled | ||
|  | check_hestia_demo_mode | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                       Action                             # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | IFS=$'\n' | ||
|  | for cluster in $(grep "SUSPENDED='no'" $HESTIA/conf/dns-cluster.conf); do | ||
|  | 
 | ||
|  | 	# Reset user, password and hash vars | ||
|  | 	clear_dns_cluster_settings | ||
|  | 
 | ||
|  | 	# Parsing remote host parameters | ||
|  | 	parse_object_kv_list "$cluster" | ||
|  | 
 | ||
|  | 	# Syncing domain | ||
|  | 	str=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf) | ||
|  | 	if [ "$DNS_CLUSTER_SYSTEM" = "hestia-zone" ]; then | ||
|  | 		str=$(echo "$str" | sed "s/SLAVE='no'/SLAVE='yes'/g") | ||
|  | 		ip=$($BIN/v-list-sys-ips plain | cut -f1) | ||
|  | 		str=$(echo "$str" | sed "s/MASTER='*'/MASTER='$ip'/g") | ||
|  | 
 | ||
|  | 		# Syncing domain data | ||
|  | 		cluster_cmd v-insert-dns-domain $DNS_USER "$str" $HOSTNAME $flush 'no' | ||
|  | 		check_result $? "$HOST connection failed" "$E_CONNECT" | ||
|  | 
 | ||
|  | 		rndc notify $domain > /dev/null 2>&1 | ||
|  | 	else | ||
|  | 		cluster_cmd v-insert-dns-domain "$DNS_USER" "$str" "$HOSTNAME" 'no' | ||
|  | 		check_result $? "$HOST connection failed (exp insert)" "$E_CONNECT" | ||
|  | 	fi | ||
|  | 
 | ||
|  | done | ||
|  | 
 | ||
|  | #----------------------------------------------------------# | ||
|  | #                       Hestia                             # | ||
|  | #----------------------------------------------------------# | ||
|  | 
 | ||
|  | # Updating pipe | ||
|  | pipe="$HESTIA/data/queue/dns-cluster.pipe" | ||
|  | str=$(grep -n "$SCRIPT $1 $2 $3$" $pipe | cut -f1 -d: | head -n1) | ||
|  | if [ -n "$str" ]; then | ||
|  | 	sed -i "$str d" $pipe | ||
|  | fi | ||
|  | 
 | ||
|  | exit |