在liunx双机下自己动手实现浮动IP技术

2023-11-01

http://www.360doc.com/content/11/0823/18/5907545_142730623.shtml

有两台Linux服务器,其中一台主机(IP:139.24.214.22)对外提供了一定的网络服务,另一台从机(IP:139.24.214.24)能提供相同的服务,但IP地址没有对外部公开。

客户端连接的都是139.24.214.22这个IP地址,如果主机故障,则会使网络服务暂时中断,时间越长造成损失越大,

由于没有采用双机热备份技术,考虑自己用Linux脚本来实现简单的浮动IP技术,当主机故障时从机获得139.24.214.22这个IP,暂时替代主机提供服务,当主机恢复时,从机自动释放这个IP。

思路:
利用单个网卡绑定多个IP地址的技术和crontab自动执行技术
为主机的网卡多绑定一个静态IP,如139.24.214.82,这个地址是便于从机判断的,
为从机的网卡多绑定一个动态IP,127.0.0.1,它在主机故障时将会被脚本修改为139.24.214.22
在从机上添加一个脚本 /root/autoFloatIP.sh,使用crontab技术让这个脚本每分钟执行一次,这个脚本的作用是判断主机的地址82能否Ping通,一旦不正常则将让自己的网卡多余的那个IP地址改为139.24.214.22,如果主机恢复,则将这个地址改回为127.0.0.1

步骤
1.为主机添加一个静态IP139.24.214.82,由于这个是静态IP,可以采用在图形化界面中设置此IP并保存的办法,或者在/etc/sysconfig/network-scripts目录里面创建一个名为ifcfg-eth0:1的文件,内容为:
DEVICE=eth0:1
IPADDR=139.24.214.82
NETMASK= 255.255.255.0
ONBOOT= yes

2.在从机上,在/root下建立一个脚本autoFloatIP.sh
用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在电脑重启会消失

3从机上建立crontab
用crontab -e命令
让后加上这样的一行并保存
* * * * * /root/autoFloatIP.sh > /dev/null 2>&1

小提示
在测试时,你可以先将这句话改为 * * * * * /root/autoFloatIP.sh
这样你可以用mutt收到很多邮件,用户跟踪脚本执行情况

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • linux4.6 EC11旋转编码器的驱动

    最近项目使用了旋转编码器EC11 遍查内核 发现并没有它的驱动 查了查 终于找到一篇有用的 根据自己的需要和对最基础的gpio key c的理解 我改写出了一份EC11的专用驱动 感谢下面博主的启发 有了这位高人的指点 我才有信心改写成功
  • cramfs文件系统制作

    参考 http blog csdn net liukun321 article details 7256456 1 首先配置内核 打开对cramfs的支持 File systems gt Miscellaneous filesystems
  • 记录一linux命令:xargs

    转自 http www sudu cn info html edu linux 20080102 290238 html xargs 大多数 Linux 命令都会产生输出 文件列表 字符串列表等 但如果要使用其他某个命令并将前一个命令的输出
  • PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理

    相对于linux来说 udev还是一个新事物 然而 尽管它03年才出现 尽管它很低调 J 但它无疑已经成为linux下不可或缺的组件了 udev是什么 它是如何实现的 最近研究Linux设备管理时 花了一些时间去研究udev的实现 udev
  • linux grep 使用

    1 grep 单独使用 搜素指定目录中包含指定字符的文件 例如 grep r words 搜素当前目录中包含 words 字符的文件 grep r words wc 搜素当前目录中包含 words 字符的文件 只显示 包含该字符的数量 2
  • 记mount NFS遇到的一个问题(-o nolock)

    前两天 测试 过程中 测试机始终 mount 不上我们的 nfs 比如我使用命令 mount vt nfs share mnt share 开始是mount命令一直hang在那里 卡住了 另一种情况是 有类似如下的错误输出 portmap
  • 【Linux

    目录 一 概述 二 test 命令 2 1 test 命令 2 2 方括号测试条件 2 3 test 命令和测试条件可以判断的 3 类条件 2 3 1 数值比较 2 3 2 字符串比较 三 复合条件测试 四 if then 的高级特性 五
  • linux驱动开发(四):ioctl()函数

    前文中我们介绍了应用程序通过使用虚拟文件系统VFS提供的接口 来控制字符驱动程序 完成字符驱动设备的open close read write操作 但是如果我们想进行除此以外的其他操作 拓展一些file operations给出的接口中没有
  • vi下显示和处理回车换行符等特殊符号

    http blog sina com cn s blog 4c76784c0100uaf9 html 换行方式 在早期的打印机时代 开始新的一行要占用两个字符的时间 如果到了一行的结尾处 你要快速回到新的一行的开头 需要打印针头在纸面上飞快
  • 07 - 日志服务器的搭建与攻击

    目录 1 项目环境 2 拓扑图 3 思路 4 配置GW CentOS 7 4 1 配置ens33 4 2 配置ens32 4 3 配置ens34 5 配置Server CentOS 7 1804 7 配置Syslog CentOS 7 18
  • Linux sh命令

    sh a c C e E f h i I k m n p r s t T u v x argument a Export all variables assigned to c Pass the string argument to the
  • linux系统之字符设备驱动——IIC驱动mma8451q

    linux系统之字符设备驱动 IIC子系统驱动mma8451q 1 原理图 2 驱动程序 mma8451q c Author your name Date 2021 02 23 22 16 37 LastEditTime 2021 02 2
  • Linux线程同步(二)---互斥锁实现线程同步

    一 why 先给自己打个广告 本人的微信公众号 嵌入式Linux江湖 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 在博客 Linux线程同步 一 初识篇 中 介绍了为
  • 【cmake】find_package设置查找路径

    1 find package的作用与实例 用来查找第三方依赖包的 cmake文件 并根据 cmake文件生成依赖包的头文件目录和库文件路径等 CMakeLists txt实例 find package Protobuf REQUIRED i
  • 杂项知识

    挂载 img 文件 mount t proc o loop initrd 2 6 23 1 42 fc8 img mnt img mount t debugfs o loop initrd 2 6 23 1 42 fc8 img mnt i
  • 中标麒麟QT中qDebug无输出问题解决办法

    一 系统环境 中标麒麟V5 qt creator 4 3 1 qt5 qtbase 5 6 2 二 问题 代码中qDebug 函数无输出 但qInfo 和qWarning 有输出 创建一个test工程 使用qDebug 打印信息 但是没有任
  • Linux Top 命令解析

    转自 http www jb51 net LINUXjishu 34604 html TOP是一个动态显示过程 即可以通过用户按键来不断刷新当前状态 如果在前台执行该命令 它将独占前台 直到用户终止该程序为止 比较准确的说 top命令提供了
  • docke的基础入门

    docker基础入门操作 一 如何安装docker 一 如何安装docker 安装docker命令通过一下命令顺序执行 即可进行安装 校验操作系统内核版本 要求是3 10以上的版本 1 安装一些必要的系统工具 其中yum utils包含yu
  • spark_hadoop集群搭建自动化脚本

    bin bash 脚本使用说明 1 使用脚本前需要弄好服务器的基础环境 2 在hadoop的每个节点需要手动创建如下目录 data hdfs tmp 3 修改下面的配置参数 4 脚本执行完备后需要收到格式化namenode
  • Fedora 10網卡消失的問題

    http itgroup blueshop com tw towns hc n convew i 6000 今天看到肉鬆Selinux的問題 想說來測試處理一下 將以備份出來的Fedora 10 VM拿出來用 啟動系統後 出現了一個怪問題

随机推荐

  • JSONObject重复引用导致结果中出现$ref的问题

    转自链接 https blog csdn net baceng article details 92836486 解决办法 先把JSONObject转换成String 然后再转换回JSONObject 例 bussinessData JSO
  • MAYA基础知识和技巧总结

    目录 自定义工具架 自定义热盒 打开Maya时隐藏Output Window 快捷键 小技巧 元素选择技巧 隐藏和显示元素的几种方法 多切割工具 加线 切割 补面的几种方法 复制的几种方法 加入参考图并锁定不动 曲线建模技巧 双轨成型工具
  • CUDA 编程入门

    CUDA 编程入门 更好的阅读体验 CUDA 概述 CUDA 是 NVIDIA 推出的用于其发布的 GPU 的并行计算架构 使用 CUDA 可以利用 GPU 的并行计算引擎更加高效的完成复杂的计算难题 在目前主流使用的冯 诺依曼体系结构的计
  • mongoDB使用总结

    windows安装 zip压缩包方式安装 下载 注意 因为现在最新版的mongodb不兼容win7 对windows系统的最低要求是win10 所以win7系统要安装mongodb数据库必须考虑使用旧版安装 Download MongoDB
  • 一个强大的漏洞公告网站

    http seclists org 通过一篇文章 MySQL 严重 Bug 用户登陆漏洞 得知的这个网站 强大
  • Python不是一门伟大的语言

    作为一门简洁易用 生态蓬勃且具有高泛用性的编程语言 Python一直以来都被不少人称作 编程语言中的瑞士军刀 尤其随着近来AI热潮席卷全球 Python在编程语言圈中的地位也随之水涨船高 甚至一度被视作AI专用语言或大数据专用语言 然而从语
  • 数据结构---归并排序

    归并排序 第一步 分组 第二步 归并 归并操作 第一步 第二步 第三步 JAVA实现 总结 第一步 分组 第1层分成2个大组 每组n 2个元素 第2层分成4个小组 每组n 4个元素 第3层分成8个更小的组 每组n 8个元素 一直到每组只有一
  • 各种经纬度坐标系转换-百度坐标系、火星坐标系、国际坐标系

    各种经纬度坐标系转换 百度坐标系 火星坐标系 国际坐标系 文章代码参考网上 测试没什么问题 汇总整理希望对大家有帮助 dou WGS84 国际坐标系 为一种大地坐标系 也是目前广泛使用的GPS全球卫星定位系统使用的坐标系 GCJ02 火星坐
  • UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来 做过游戏的应该都清楚 如果游戏稍微有点规模 那么使用数据驱动来做游戏一般是必不可少的一步 一般也就是策划通过本表的方式来解决 下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开
  • MobileViG实战:使用MobileViG实现图像分类任务(一)

    文章目录 摘要 安装包 安装timm 安装 grad cam 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 论文翻译 https blog csdn net m0 47867638 articl
  • 获取cookie的两种方式EL表达式中判断数据是否为空

    1 使用java代码获取cookie Cookie cs request getCookies 通过请求获取 for Cookie c cs if c getName equals loginAct String loginAct c ge
  • js总结(二)--彻底理解js中this的指向,不必硬背。

    首先必须要说的是 this的指向在函数定义的时候是确定不了的 只有函数执行的时候才能确定this到底指向谁 实际上this的最终指向的是那个调用它的对象 这句话有些问题 后面会解释为什么会有问题 虽然网上大部分的文章都是这样说的 虽然在很多
  • 解决 vscode 登录微软账户同步设置 出现“vscode.dev 关闭了连接“ 问题

    我的电脑最近重装了系统 之前的软件都删除了 在重新安装vscode之后想同步之前的设置 主题时出现了问题 我的解决方法是 在当前页面 输入 https vscode dev 看能不能打开 如果能打开 再次点击vscode登录账号同步设置 我
  • Pytorch与Onnx模型的保存、转换与操作

    Open Neural Network Exchange ONNX 开放神经网络交换 格式 是一个用于表示深度学习模型的标准 可使模型在不同框架之间进行转移 一 pytorch模型保存 加载 有两种方式可用于保存 加载pytorch模型 1
  • mysql查询表的所有内容

    show create table 表名
  • echarts设置x轴字体不同颜色

    业务需求 根据x轴是用户和有用户的文件夹来展示两种颜色 在获取数据的方法中 initData totalAnaysis then res gt let xData yData xFontcolor res data user forEach
  • 男人彻底懂得一个女人之后就不会爱她了吗?

    爱情教母张爱玲说过 男人彻底懂得一个女人之后 是不会爱她的 其实张爱玲的表达不确切 谁都不可能彻底懂得谁 自己都不可能彻底懂得自己 否则 张爱玲不会一遍一遍地写自己的童年 对其进行剖析 早年的有散文 私语 后来有英文的 雷峰塔 和中文的 小
  • java 提取文档注释 命令,java文档注释及javadoc命令

    注释的三种类型 1 单行注释 双斜线 2 多行注释 一次性将程序的多行注释掉 3 文档注释 如果编写Java源代码是添加了合适的文档注释 然年后通过JDK提供的Javadoc工具可以直接将源代码里面的文档注释提取成一份系统的API文档 文档
  • 破解AES秘钥长度限制

    破解AES秘钥长度限制 高级加密标准 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 密码说明 因为Rijndael加密法可以支持更大范围的区块和密钥长度 AES的区块长度固
  • 在liunx双机下自己动手实现浮动IP技术

    http www 360doc com content 11 0823 18 5907545 142730623 shtml 有两台Linux服务器 其中一台主机 IP 139 24 214 22 对外提供了一定的网络服务 另一台从机 IP