网络故障时拨打 3g 链接的脚本?

网络故障时拨打 3g 链接的脚本?

我想设置一个具有自动故障转移到 3G 链路的 Ubuntu 路由器。我可能可以设置路由和链路聚合,但我不知道如何监控链路状态并在 3G 链路发生故障时拨打该链路。非常感谢提供有用的资源。

答案1

我不确定有什么东西可以为你做到这一点...但是,你可以用一点脚本,一点谷歌搜索,拼凑一个脚本:

  • 每 10 分钟 ping 一次 google,超时时间为 2 秒,并且只能从您的“固定”连接(而非 3G 连接)进行(使用标志-I)。
  • 如果 ping 成功,并且您处于固定连接上,则不执行任何操作。
  • 如果您使用的是 3G,并且固定连接上的 ping 通,请关闭 3G 适配器。
  • 如果失败,请启动 3G 适配器。

这是我的快速尝试:

#! /bin/bash

CONNECTION=1

main()
{
    if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
        echo "Connection is ok!"

        if [ $CONNECTION -eq 0 ] ; then
            # take the 3g connection down
            ifconfig 3GADAPTERNAME down
            CONNECTION=1
        fi
    else
        echo "Connection is dead! Long live the connection!"

        if [ $CONNECTION -eq 1 ] ; then
            # turn the 3g connection on
            ifconfig 3GADAPTERNAME up
            CONNECTION=0
        fi
    fi

    sleep 5
    main
}

main

显然,请3GADAPTERNAME用您的适配器名称替换。如果您的主连接不同,请切换eth0。确保将其设置为自动连接(因此,当允许时,它会连接)。该脚本需要以 root 身份运行。

相关内容