is_sys_ip_free() { # Parsing system ips ip_list=$(ifconfig|grep 'inet addr:'|cut -f 2 -d ':'|cut -f 1 -d " ") # Checking ip existance ip_check=$(echo "$ip_list"|grep -w "$ip") if [ -n "$ip_check" ] || [ -e "$V_IPS/$ip" ]; then echo "Error: IP exist" log_event 'debug' "$E_IP_EXIST $V_EVENT" exit $E_IP_EXIST fi } get_next_interface_number() { # Parsing ifconfig i=$(ifconfig -a |grep -w "$interface"|cut -f1 -d ' '|\ tail -n 1|cut -f 2 -d :) # Checking result if [ "$i" = "$interface" ]; then n=0 else n=$((i + 1)) fi echo ":$n" } is_sys_ip_valid() { # Parsing ifconfig check_ifc=$(/sbin/ifconfig |grep "inet addr:$ip") # Checking ip existance if [ ! -e "$V_IPS/$ip" ] || [ -z "$check_ifc" ]; then echo "Error: IP not exist" log_event 'debug' "$E_IP_NOTEXIST $V_EVENT" exit $E_IP_NOTEXIST fi } is_ip_key_empty() { key="$1" # Parsing ip string=$(cat $V_IPS/$ip ) # Parsing key=value for keys in $string; do eval ${keys%%=*}=${keys#*=} done # Self reference eval value="$key" # Checkng key if [ ! -z "$value" ] && [ "$value" != '0' ]; then echo "Error: value is not empty = $value " log_event 'debug' "$E_VALUE_EXIST $V_EVENT" exit $E_VALUE_EXIST fi } update_sys_ip_value() { key="$1" value="$2" # Defining conf conf="$V_IPS/$ip" # Parsing conf str=$(cat $conf) # Reading key=values for keys in $str; do eval ${keys%%=*}=${keys#*=} done # Define clean key c_key=$(echo "${key//$/}") eval old="${key}" # Escaping slashes old=$(echo "$old" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g') new=$(echo "$value" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g') # Updating conf sed -i "$str_number s/$c_key='${old//\*/\\*}'/$c_key='${new//\*/\\*}'/g"\ $conf } is_ip_avalable() { # Checking ip existance if [ ! -e "$V_IPS/$ip" ]; then echo "Error: IP not exist" log_event 'debug' "$E_IP_NOTEXIST $V_EVENT" exit $E_IP_NOTEXIST fi # Parsing ip data ip_data=$(cat $V_IPS/$ip) ip_owner=$(echo "$ip_data" | grep 'OWNER=' | cut -f 2 -d \' ) ip_status=$(echo "$ip_data" | grep 'STATUS=' | cut -f 2 -d \' ) # Parsing user data user_owner=$(grep 'OWNER=' $V_USERS/$user/user.conf | cut -f 2 -d \') if [ "$user_owner" = "$ip_owner" ] && [ "$ip_status" = 'shared' ]; then ip_shared='yes' else ip_shared='no' fi if [ "$ip_owner" != "$user" ] && [ "$ip_shared" != 'yes' ]; then echo "Error: ip not owned by user" log_event 'debug' "$E_IP_NOTOWNED $V_EVENT" exit $E_IP_NOTOWNED fi } is_sys_ip_owner() { # Parsing ip ip_owner=$(grep 'OWNER=' $V_IPS/$ip|cut -f 2 -d \') if [ "$ip_owner" != "$user" ]; then echo "Error: IP not owned" log_event 'debug' "$E_IP_NOTOWNED $V_EVENT" exit $E_IP_NOTOWNED fi } get_ip_name() { # Prinitng name grep "NAME=" $V_IPS/$ip |cut -f 2 -d \' } increase_ip_value() { USER=$user web_key='U_WEB_DOMAINS' usr_key='U_SYS_USERS' # Parsing values current_web=$(grep "$web_key=" $V_IPS/$ip |cut -f 2 -d \') current_usr=$(grep "$usr_key=" $V_IPS/$ip |cut -f 2 -d \') # Checking result if [ -z "$current_web" ]; then echo "Error: Parsing error" log_event 'debug' "$E_PARSE_ERROR $V_EVENT" exit $E_PARSE_ERROR fi # +1 webdomain new_web=$((current_web + 1)) # +1 user if [ -z "$current_usr" ]; then new_usr="$USER" else check_usr=$(echo -e "${current_usr//,/\n}" |grep -w $USER) if [ -z "$check_usr" ]; then new_usr="$current_usr,$USER" else new_usr="$current_usr" fi fi # Changing config sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" $V_IPS/$ip sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" $V_IPS/$ip } decrease_ip_value() { sip=${1-ip} USER=$user web_key='U_WEB_DOMAINS' usr_key='U_SYS_USERS' # Parsing values current_web=$(grep "$web_key=" $V_IPS/$sip |cut -f 2 -d \') current_usr=$(grep "$usr_key=" $V_IPS/$sip |cut -f 2 -d \') # Checking result if [ -z "$current_web" ]; then echo "Error: Parsing error" log_event 'debug' "$E_PARSE_ERROR $V_EVENT" exit $E_PARSE_ERROR fi # -1 webdomain new_web=$((current_web - 1)) # -1 user check_ip=$(grep $sip $V_USERS/$user/web_domains.conf |wc -l) if [ "$check_ip" -lt 2 ]; then new_usr=$(echo "$current_usr" |\ sed -e "s/,/\n/g"|\ sed -e "s/^$user$//g"|\ sed -e "/^$/d"|\ sed -e ':a;N;$!ba;s/\n/,/g') else new_usr="$current_usr" fi # Changing config sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" $V_IPS/$sip sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" $V_IPS/$sip } get_sys_ip_value() { key="$1" # Parsing domains string=$( cat $V_IPS/$ip ) # Parsing key=value for keys in $string; do eval ${keys%%=*}=${keys#*=} done # Self reference eval value="$key" # Print value echo "$value" } change_domain_ip() { # Defining vars conf="$1" domain="$2" ip="$3" old_ip="$4" tpl_file="$5" # Get ServerName line serv_line=$(grep -n 'ServerName %domain%' "$tpl_file" |cut -f 1 -d :) # Get tpl_file last line last_line=$(wc -l $tpl_file|cut -f 1 -d ' ') # Get before line bfr_line=$((serv_line - 1)) # Parsing httpd.conf str=$(grep -B $bfr_line -n "ServerName $domain" $conf|grep '$V_IPS/$ip } ip_add_startup() { # Filling ip values ip_data="# Added by vesta $V_SCRIPT" ip_data="$ip_data\nDEVICE=$iface" ip_data="$ip_data\nBOOTPROTO=static\nONBOOT=yes" ip_data="$ip_data\nIPADDR=$ip" ip_data="$ip_data\nNETMASK=$mask" # Adding ip echo -e "$ip_data" >$iconf-$iface } ipint_json_list() { interfaces=$(cat /proc/net/dev|grep :|cut -f 1 -d :|sed -e "s/ //g") int_counter=$(echo "$interfaces"|wc -l) i=1 # Print top bracket echo '[' # Listing servers for interface in $interfaces; do if [ "$i" -lt "$int_counter" ]; then echo -e "\t\"$interface\"," else echo -e "\t\"$interface\"" fi i=$((i + 1)) done echo "]" } ipint_shell_list() { interfaces=$(cat /proc/net/dev|grep :|cut -f 1 -d :|sed -e "s/ //g") # Print result echo "INTERFACES" echo "----------" for interface in $interfaces; do echo "$interface" done }