在Linux 双机下自己手动实现浮动ip技术

两台Linux服务器,一台为主机(IP:124.158.26.30)对外提供了一定的网络服务,另一台从机(IP:124.158.26.31)能提供相同的服务,但ip地址没有对外部公开客户端连接的都是124.158.26.30这个ip地址,如果主机故障,则会使网络服务暂时中断,时间越长造成损失越大由于没有采用双机热备技术,考虑自己用Linux脚本来实现简单的浮动ip技术,当主机故障时从机获取124.158.26.30这个ip,暂时替代主机提供服务,当主机恢复时,从机自动释放这个ip
 
实现:
 利用单个网卡绑定多个ip地址的技术和crontab自动执行技术
 为主机的网卡多绑定一个静态ip,如124.158.26.32 ,这个地址是便于从机判断的,为从机的网卡多绑定一个动态ip,127.0.0.1,它在主机故障时将会被脚本修改为124.158.26.30
 在从机添加一个脚本 floatip.sh,使用crontab技术让这个脚本每分钟执行一次,这个脚本的作用是判断主机的地址32能否ping通,一旦不通则将让自己的网卡多余那个ip地址改为124.158.26.30,如果主机恢复,则将这个地址改回为127.0.0.1
 
步骤:
 一、为主机多绑定一个静态ip124.158.26.32

/etc/sysconfig/network-scripts目录里面创建一个名为

ifcfg-eth0:1的文件,内容为:

DEVICE=eth0:1

IPADDR=139.24.214.82

NETMASK= 255.255.255.0

ONBOOT= yes

二、在从机上建立脚本floatip.sh
 c1=`ping 124.158.26.32 -c 1 | grep Unreachable | wc -l`
 c2=`ping 124.158.26.32 -c 10 | grep Unreachable | wc -l`
 c3=`ping 124.158.26.30 -c 10 | grep Unreachable | wc -l`
 c4=`/sbin/ifconfig |grep 124.158.26.30 |wc -l`
  if [ $c1 -gt 0 ] ;then
  if [ $c2 -gt 9 ] ;then
  if [ $c3 -gt 9 ] ;then
  /sbin/ifconfig eth0:1 124.158.26.30 netmask 255.255.255.0
  echo "float ip to 30"
  fi
  fi
 echo "can not connect"
 else
  if [ $c4 -gt 0 ] ;then
  /sbin/ifconfig eth0:1 127.0.0.1 netmask 255.255.255.0
  echo "reset ip"
  fi
 echo "connection is ok"
 fi

用chmod +x autoFloatIP.sh

让它可以执行,脚本的内容为

c1=$(ping 139.24.214.82 -c 1|grep Unreachable|wc -l)

if [ $c1 -gt 0 ]  then

c2=$(ping 139.24.214.82 -c 10|grep Unreachable|wc -l)

if [ $c2 -gt 9 ]  then

c3=$(ping 139.24.214.22 -c 10|grep Unreachable|wc -l)

if [ $c3 -gt 9 ]  then

/sbin/ifconfig eth0:1 139.24.214.22 netmask 255.255.254.0

echo "float ip to 22"

fi

fi

echo "can not connect"

else

c4=$(/sbin/ifconfig|grep 139.24.214.22|wc -l)

if [ $c4 -gt 0 ]  then

/sbin/ifconfig eth0:2 127.0.0.1 netmask 255.255.254.0

echo "reset ip"

fi

echo "connection is ok"

fi

其中关键的命令为

/sbin/ifconfig eth0:1 139.24.214.22 netmask 255.255.254.0

/sbin/ifconfig eth0:2 127.0.0.1 netmask 255.255.254.0

用这个方法来动态修改

IP

,动态

IP

在电脑重启会消失

从机上建立crontab

让后加上这样的一行并保存

* * * * * /root/autoFloatIP.sh > /dev/null 2>&1

小提示

在测试时,你可以先将这句话改为

* * * * * /root/autoFloatIP.sh

这样你可以用

mutt

收到很多邮件,用户跟踪脚本执行情况

时间: 2024-11-10 09:24:33

在Linux 双机下自己手动实现浮动ip技术的相关文章

虚拟机linux系统下ifconfig获取不到ip

原因:网卡未激活 1.输入ifup eth0命令激活网卡 2.输入ifconfig查询ip

浮动IP(Floating IPs):开始构建你的高可用性的应用

高可用性是所有生产环境的关键.开发者因此可以高枕无忧因为他们知道他们的应用被设计为可以承受住故障. 今天,我们非常激动的宣布我们应用了浮动IP技术.浮动IP指的是一个IP地址可以立即从一个Droplet(Digitalocean的VPS)转移到同一数据中心下的另一个Droplet. 一个高度可用的基础设施需要具备立即将IP地址指向冗余服务器的能力.增加了浮动IP技术后,将能够做到这一点. 工作方式 一个地方的故障有可能使整个应用垮台.有了浮动IP技术,用户可以在快速的将一个IP地址绑定到其它Dr

Linux系统下部署maven nexus私服和手动同步中央仓库索引

一.准备工作 1. 下载JDK和maven nexus,JDK很好下载,不多做解释,但是maven nexus当时我从官网上下载不了,在网上找了很久,最终从从CSDN共享文件中下载到,将其共享到网盘中方便提供下载.(注意:JDK版本要和maven版本匹配) nexus的网盘内容: 链接:http://pan.baidu.com/s/1qWsYScG 密码:8hb0-----此版本是2.4 链接:http://pan.baidu.com/s/1ntEJExb 密码:1lsw------此版本是2.

ant+jmeter 在Linux环境下接口自动化测试环境搭建(2)

上一篇讲过在Windows下搭建的方法,今天这里写一下在Linux环境下搭建的方法. 实验准备:Linux服务器一台. 服务器上安装好jdk,配置好环境变量. 服务器上配置好ant. 工具准备: Jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Jmeter下载地址 http://jmeter.apache.org/ Ant下载地址 http://ant.apache.org/ 环境准备: 所以

linux系统下文件查找

在我们实际应用中,经常需要查找某个特定的文件,或者根据文件的某个特定属性进行查找,今天小菜就给大家分享一下,linux系统下文件查找的两大利器: 1,locate:非实时查找(基于预先生成的数据库查找):模糊匹配:速度快 2,find:实时查找(遍历目录中的所有文件完成查找):精确匹配,支持众多查找标准:速度慢 一.locate 查询系统上预先生成的文件索引数据库:/var/lib/mlocate/mlocate.db 依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务) 管

linux系统下,11款常见远程桌面控制软件

linux系统下,11款常见远程桌面控制软件 一. Grdc 它是一个用GTK+编写的,适用于gnome桌面环境的远程桌面访问软件.看图: 常见功能: 1.提供全屏,窗口化的远程控制.支持高分辨率下的窗口显示以及调整. 2.可浮动的工具栏 3.可抓取键盘 4.支持建立一个“常用访问列表” 5.连接快速,高效 6.全屏模式下,当鼠标划过屏幕边缘时自动滚动 7.全屏模式下工具栏同样支持浮动效果,可直接进行例如模式切换,键盘抓取最小化等常见操作. 8. rdesktop 支持RDP协议, 9. 支持

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

linux环境下jdk 安装以及maven私服搭建

1:准备资源 linux服务器,jdk和nexus  安装包 2:网络通畅,保持windows端和linux服务器端网络通畅. 3: 安装jdk和配置环境变量 进入到jdk安装文件的目录夹 usr/java 1: 进入到安装文件的目录夹  cd ~命令到根目录下  在cd usr/java 2:授权 chmod 755 jdk-7u55-linux-x64.tar.gz 3: tar -zxvf jdk-7u55-linux-x64.tar.gz mv 解压的文件夹名  jdk1.7 修改 /e

linux系统下的权限控制

 linux系统下的权限控制 1.文件权限 在我们的linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行 示例: 644:(4+2) (4)  (4) 第一个6:表示当前文件的拥有者的权限,6=4+2 可读可写权限 第二个4:表示当前文件的所属组权限,4=4 可读权限 第三个4:表示当前文件的组外权限,4=4 可读权限 2.查看文件权限的命令:(ls -l 或ll) 总共可以分为7大列: 第1列(分为10列): 1:文件的类型 ,-代表普通文件,d代表目录,l