zoukankan      html  css  js  c++  java
  • 在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

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

  • 相关阅读:
    用代理IP进行简单的爬虫——爬高匿代理网站
    python利用django实现简单的登录和注册,并利用session实现了链接数据库
    python基础知识——基于python3.6
    笔记2_列表、元组、字典
    wpf Command
    可枚举对象操作
    2019寒假训练营寒假作业(二) 程序题部分
    2019-01-23 寒假作业(一)
    2019寒假训练营第二次作业
    网络空间安全概论 学习笔记(二)
  • 原文地址:https://www.cnblogs.com/Gbeniot/p/5421369.html
Copyright © 2011-2022 走看看