[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.14.128.200: ~ $
#!/bin/bash
# Copyright (c) 2015-2017, Parallels International GmbH
# Copyright (c) 2017-2019 Virtuozzo International GmbH. All rights reserved.
#
# This script configure IP alias(es) inside RedHat like VM.
#
# Parameters: <dev> <MAC_addr> <IPs>
#   <dev>         - name of device. (example: eth2)
#   <MAC_addr>    - MAC address of device
#   <IP/MASKs>    - IP address(es) with MASK 
#                   (example: 192.169.1.30/255.255.255.0)
#                   (several addresses should be divided by space)
#  

prog="$0"
path="${prog%/*}"
funcs="$path/functions"

if [ -f "$funcs" ] ; then
	. $funcs
else
	echo "Program $0"
	echo "'$funcs' was not found"
	exit 1
fi


ETH_DEV=$1
ETH_MAC=$2
IP_MASKS=$3
OPTIONS=$4
ETH_DEV_CFG=ifcfg-$ETH_DEV
IFNUM=-1
IF6NUM=-1

IP4_COUNT=0
IP6_COUNT=0

IFCFG_DIR=/etc/sysconfig/network-scripts
IFCFG=${IFCFG_DIR}/${ETH_DEV_CFG}
NETFILE=/etc/sysconfig/network
ROUTE=${IFCFG_DIR}/route-${ETH_DEV}
RESTART_NETWORK="no"

set_options "${OPTIONS}"
disable_network_manager

function setup_network()
{
	mkdir -p ${IFCFG_DIR}

	is_nm_present || return

	# Set /etc/sysconfig/network
	if ! grep -ilq "^[[:space:]]*NETWORKING=\"*yes" $NETFILE 2>/dev/null ; then
		put_param $NETFILE NETWORKING yes
		RESTART_NETWORK="yes"
	fi
}

function create_config()
{
	local ip=$1
	local mask=$2
	local ifnum=$3
	local ifnum_postfix=":${ifnum}"
	# Use the new scheme only for Fedoras with systemd and Network Manager installed
	is_nm_present
	local is_nm_controlled=$?

	[ -z "${ip}" ] && \
		error "Empty value of IP"

	[ "${ip}" == "remove" ] && ip=""

	[ -z "${mask}" ] && \
		error "Empty value of MASK"

	[ "x${ifnum}" == "x0" ] && ifnum_postfix=""

	[ ${is_nm_controlled} -eq 1 ] && ifnum_postfix=""

	local ifcfg=${IFCFG_DIR}/bak/${ETH_DEV_CFG}${ifnum_postfix}
	touch ${ifcfg}

	if [ "x${ifnum}" == "x0" -o ${is_nm_controlled} -eq 0 ]; then
		put_param ${ifcfg} DEVICE "${ETH_DEV}${ifnum_postfix}"
		put_param ${ifcfg} ONBOOT yes
		put_param ${ifcfg} BOOTPROTO none
		put_param ${ifcfg} HWADDR ${ETH_MAC}
		if [ -n "${ifnum_postfix}" ]; then
			put_param ${ifcfg} NO_ALIASROUTING yes
		fi
	fi
	if [ ${is_nm_controlled} -eq 1 ]; then
		put_param ${ifcfg} IPADDR${ifnum} "${ip}"
		put_param ${ifcfg} NETMASK${ifnum} ${mask}
	else
		put_param ${ifcfg} IPADDR "${ip}"
		put_param ${ifcfg} NETMASK ${mask}
	fi
	
	if [ "x${ifnum}" == "x0" ] ; then
		if [ $IP6_COUNT -eq 0 -a $USE_DHCPV6 -eq 1 ]; then
			put_param ${ifcfg} DHCPV6C yes
			put_param ${ifcfg} DHCPV6C_OPTIONS "-d"
		fi
	fi
}

function add_ip6()
{
        local ifcfg="${IFCFG_DIR}/bak/${ETH_DEV_CFG}"
        local ip=$1
        local mask=$2
        local ipm
	local ifnum=$3

	touch ${ifcfg}

	if [ $ifnum -eq 0 ] ; then
		del_param "${ifcfg}" IPV6ADDR_SECONDARIES
		del_param "${ifcfg}" IPV6ADDR
		put_param ${ifcfg} DHCPV6C no
		put_param ${ifcfg} IPV6_AUTOCONF no
		
		if [ $IP4_COUNT -eq 0 ]; then
			put_param ${ifcfg} DEVICE "${ETH_DEV}${ifnum_postfix}"
			put_param ${ifcfg} ONBOOT yes
			if [ $USE_DHCPV4 -eq 1 ]; then
				put_param ${ifcfg} BOOTPROTO dhcp
			else
				put_param ${ifcfg} BOOTPROTO none
			fi
			put_param ${ifcfg} HWADDR ${ETH_MAC}
		fi
	fi

        put_param ${NETFILE} NETWORKING_IPV6 yes
        put_param ${ifcfg} DEVICE "${ETH_DEV}" 
        put_param ${ifcfg} IPV6INIT yes
        if ! grep -qw "${ip}" ${ifcfg} 2>/dev/null; then
                if [ -n "${mask}" ]; then
                        ipm="${ip}/${mask}"
                else
                        ipm="${ip}"
                fi

		if [ $ifnum -eq 0 ] ; then
			put_param ${ifcfg} IPV6ADDR "${ipm}"
		else
			add_param ${ifcfg} IPV6ADDR_SECONDARIES "${ipm}"
		fi
        fi
}

function move_configs()
{
	pushd ${IFCFG_DIR} > /dev/null 2>&1 || return 1
	rm -rf ${ETH_DEV_CFG}*
	mv -f bak/* ${IFCFG_DIR}/ >/dev/null 2>&1 
	rm -rf ${IFCFG_DIR}/bak
	popd > /dev/null 2>&1
}

function remove_ips()
{
        local ifcfg="${IFCFG_DIR}/bak/${ETH_DEV_CFG}"
        local old_ifcfg="${IFCFG_DIR}/${ETH_DEV_CFG}"

		[ ! -f $old_ifcfg ] && return 0

		cat $old_ifcfg > $ifcfg || error "Cant copy ${ETH_DEV_CFG}" $VZ_FS_NO_DISK_SPACE

		del_param "${ifcfg}" IPV6ADDR_SECONDARIES
		del_param "${ifcfg}" IPV6ADDR
		del_param "${ifcfg}" "IPADDR\d*"
		del_param "${ifcfg}" "NETMASK\d*"
		return 0
}

function set_ip()
{
	local ip_mask ip mask
	local new_ips

	rm -rf ${IFCFG_DIR}/bak/ >/dev/null 2>&1
	mkdir -p ${IFCFG_DIR}/bak

	new_ips="${IP_MASKS}"
	for ip_mask in ${new_ips}; do
		[ "${ip_mask}" = "remove" ] && remove_ips && return $?
		if is_ipv6 ${ip_mask}; then
			let IP6_COUNT=IP6_COUNT+1
		else
			let IP4_COUNT=IP4_COUNT+1
		fi
	done

	setup_network

	new_ips="${IP_MASKS}"
	for ip_mask in ${new_ips}; do
		if ! is_ipv6 ${ip_mask}; then
			let IFNUM=IFNUM+1
			if echo ${ip_mask} | grep -q '/' ; then
				mask=${ip_mask##*/}
			else
				mask='255.255.255.255'
			fi
			ip=${ip_mask%%/*}
			create_config "${ip}" "${mask}" "${IFNUM}"
		else
			let IF6NUM=IF6NUM+1
			if echo ${ip_mask} | grep -q '/' ; then
				mask=${ip_mask##*/}
			else
				mask=
			fi
			ip=${ip_mask%%/*}
			add_ip6 "${ip}" "${mask}" "${IF6NUM}"
		fi
	done
}

function apply()
{
	#stop adapter
	if [ "x$RESTART_NETWORK" = "xyes" ]; then
		/etc/init.d/network stop
	else
		/sbin/ifdown ${ETH_DEV}
	fi

	move_configs

	#start adapter
	if [ "x$RESTART_NETWORK" = "xyes"  ]; then
		/etc/init.d/network start
	else
		/sbin/ifup ${ETH_DEV}
	fi
}

is_nm_active
if [ $? -eq 0 ]; then
	call_nm_script $0 "$@"
	exit $?
fi

set_ip && apply

# end of script

Filemanager

Name Type Size Permission Actions
debian-get_dhcp.sh File 1.32 KB 0755
debian-netplan_restart.sh File 439 B 0755
debian-restart.sh File 1.34 KB 0755
debian-set_dhcp.sh File 1.62 KB 0755
debian-set_gateway.sh File 1.85 KB 0755
debian-set_ip.sh File 4.35 KB 0755
debian-set_route.sh File 2.06 KB 0755
functions File 20.34 KB 0755
netplan-cfg.py File 8.63 KB 0755
netplan-cfg.pyc File 10.45 KB 0644
netplan-cfg.pyo File 10.45 KB 0644
nm-get_dhcp.sh File 834 B 0755
nm-restart.sh File 488 B 0755
nm-set_dhcp.sh File 1.23 KB 0755
nm-set_dns.sh File 1.71 KB 0755
nm-set_gateway.sh File 1.11 KB 0755
nm-set_ip.sh File 3.02 KB 0755
nm-set_route.sh File 1.12 KB 0755
redhat-get_dhcp.sh File 1.58 KB 0755
redhat-restart.sh File 429 B 0755
redhat-set_dhcp.sh File 2 KB 0755
redhat-set_gateway.sh File 1.54 KB 0755
redhat-set_ip.sh File 5.36 KB 0755
redhat-set_route.sh File 1.33 KB 0755
set_dns.sh File 4.03 KB 0755
suse-get_dhcp.sh File 1 KB 0755
suse-restart.sh File 255 B 0755
suse-set_dhcp.sh File 1.7 KB 0755
suse-set_gateway.sh File 970 B 0755
suse-set_ip.sh File 3.01 KB 0755
suse-set_route.sh File 1.12 KB 0755