linux自动切换网,linux使用shell自动切换网关

编写名为auto_change_gw.sh的脚本,用来自动切换主机网关,相关说明如下:

1)有2个可用的网关地址,分别是主网关192.168.10.254和备用网关192.168.10.253,当前使用的默认网关是192.168.10.254;

2)若当前使用的网关地址192.168.10.254出现问题,自动把网关地址切换为192.168.10.253;

3)当网关地址192.168.10.254能正常工作后,当前主机再把网关地址切换到192.168.10.254。

讲下思路:

1、先用while 循环建一个死循环,为了让脚本永久循环下去,因为要实时测试主网关能否连通

while :

do

done

2、进入死循环后,在死循环里面再嵌套两个循环

第一个循环while循环,就是ping主网关,能ping通就继续ping,ping不通循环结束。就进入第二个循环

进入第二个循环前先删除默认网关,换上备用网关

3、进入第二个循环,是until循环,继续ping主网关,ping不通就继续ping,ping的通就结束循环,注意跟第一个循环的区别

此时由于是死循环的原因,又重头开始第一个循环,进入循环前需要先删除默认网关,换上主网关,这也是那两个命令在开头写的原因

[[email protected] shell]# vim auto_change_gw.sh

1 #!/bin/bash

2 gw1=192.168.10.253

3 gw2=192.168.10.251

4 (

5 while :     //进入死循环

6 do          //进入死循环的操作

7         route del default

8         route add default gw $gw1   //删除默认网关,并设gw1为默认网关。这两个命令主要是为了第二个循环结束后进行的操作

9         while ping -c 1 $gw1 &> /dev/null     //测试能否ping通主网关。while循环是测试条件成立会继续循环,即继续ping下去

10                 do

11                         sleep 1      //ping成功会休眠一秒

12                 done               //ping不通结束循环

13         route del default

14         route add default gw $gw2           //第一个循环结束后进行的操作,删除默认网关,并将gw2设为默认网关

15         until ping -c 1 $gw1 &> /dev/null   //进入第二个循环继续ping主网关。until循环是测试条件不成立会继续循环,即ping不通继续ping

16                 do

17                         sleep 1            //ping不通会会休眠一秒。然后接着ping

18                 done                  //ping通了就结束循环,又重新进入死循环进行的操作。就是删除默认网关,并gw1为默认网关

19 done

20 ) &     //将脚本里的命令加入后台执行

原文:http://huanglianfeng.blog.51cto.com/4813074/1362964

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值