#!/bin/bash # info: change dns domain record # options: user domain id record type value [priority] # # The function for changing DNS record. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 domain=$(idn -t --quiet -u "$2" ) domain=$(echo $domain | tr '[:upper:]' '[:lower:]') domain_idn=$(idn -t --quiet -a "$domain") record=$(idn -t --quiet -u "$3" ) record=$(echo $record | tr '[:upper:]' '[:lower:]') rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]') dvalue=$(idn -t --quiet -u "$5" ) dvalue=$(echo $dvalue | tr '[:upper:]' '[:lower:]') id=$6 priority=$7 # Includes source $VESTA/conf/vesta.conf source $VESTA/func/main.sh source $VESTA/func/domain.sh #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '6' "$#" 'user domain record type id value [priority]' validate_format 'user' 'domain' 'record' 'rtype' 'dvalue' 'id' is_system_enabled "$DNS_SYSTEM" is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'dns' 'DOMAIN' "$domain" is_object_unsuspended 'dns' 'DOMAIN' "$domain" is_object_valid "dns/$domain" 'ID' "$id" #----------------------------------------------------------# # Action # #----------------------------------------------------------# if [ "$rtype" != 'MX' ] || [ "$rtype" != 'SRV' ]; then priority='' fi # Deleting old record sed -i "/^ID='$id'/d" $USER_DATA/dns/$domain.conf # Adding record dns_rec="ID='$id' RECORD='$record' TYPE='$rtype' PRIORITY='$priority'" dns_rec="$dns_rec VALUE='$dvalue' SUSPENDED='no' TIME='$TIME' DATE='$DATE'" echo "$dns_rec" >> $USER_DATA/dns/$domain.conf # Sorting records sort_dns_records # Updating zone update_domain_zone #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Restart named $BIN/v_restart_dns "$EVENT" # Logging log_history "$EVENT" log_event "$OK" "$EVENT" exit