linux切换IP脚本

#VIP设置 
#v_ip:10.229.128.21
#local_ip:10.229.128.79
#!/bin/bash

ngxsrv="nginx_srv_2"
logsrv="10.229.128.76"

v_ip="10.229.128.21"
local_ip="10.229.128.81"

bond="/etc/sysconfig/network-scripts/ifcfg-ens18"
backup="/opt/jwtsec/backup/network-scripts/ifcfg-ens18"

NGINX_NUM=$(ps -ef | grep nginx | grep process | wc -l)
if [ $NGINX_NUM -lt 5 ];then
	/usr/bin/logger -n $logsrv -P 514 -d "$ngxsrv: nginx_process has down"
	echo "$(date "+%Y/%m/%d-%T") -- $ngxsrv: nginx_process has down!"
	rst=$(cat $bond | grep "$v_ip")
	if [[ $rst != "" ]];then
		rm -rf $backup
		cp $bond $backup
		sed -i "s/$v_ip/$local_ip/g" $bond
		/usr/bin/systemctl restart NetworkManager > /dev/null 2>&1
        sleep 1
		/usr/sbin/ifdown ens18 && /usr/sbin/ifup ens18 > /dev/null 2>&1
		echo "$(date "+%Y/%m/%d-%T") -- $ngxsrv: vip($v_ip) reset to localip($local_ip)"
	fi  
else
	/usr/sbin/ping -c 1 $v_ip > /dev/null 2>&1
	if [ $? -ne 0 ];then
		sed -i "s/$local_ip/$v_ip/g" $bond
		/usr/bin/systemctl restart NetworkManager > /dev/null 2>&1
        sleep 1
		/usr/sbin/ifdown ens18 && /usr/sbin/ifup ens18 > /dev/null 2>&1
		echo "$(date "+%Y/%m/%d-%T") -- $ngxsrv: localip($local_ip) reset to vip($v_ip)"
	fi
	#echo "$(date "+%Y/%m/%d-%T") -- vipsrv($v_ip): the status is Active(running),  nothing change network-scripts(ens18)"
fi

exit


# crontab
* * * * * flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
* * * * * sleep 20; flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
* * * * * sleep 40; flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
####
* * * * * sleep 10; flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
* * * * * sleep 30; flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
* * * * * sleep 50; flock -xn /tmp/rsync_conf.lock -c "/opt/jwtsec/scripts/vip_hook.sh >> /opt/jwtsec/logs/rsync/vip_hook.log 2>&1 &"
posted @ 2023-09-12 11:35  左岸丶  阅读(45)  评论(0编辑  收藏  举报