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 @   左岸丶  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-09-12 python UnitTest
2020-09-12 python date与datetime
2020-09-12 python pip超时
2019-09-12 lsof常用命令(lists openfiles)
2019-09-12 systemctl
点击右上角即可分享
微信分享提示