Please read the original article -元の記事をご覧ください- How To: Load Balancing & Failover With Dual/ Multi WAN / ADSL / Cable Connections on Linuxどのように:負荷分散&にフェールオーバーをデュアル/マルチワン/ adsl /ケーブルの接続をLinux .です。 It contains detailed information with a sample script.詳細な情報が含まれ、サンプルスクリプトです。 Viliam Kočinský modified my script to send email when routing table changes.私のスクリプトを更新viliam kočinský電子メールを送信するときにルーティングテーブルの変更を適用します。 Also he is starting the script as a service from /etc/init.d.また彼はスクリプトをサービスとして開始してから/ etc / init.dのです。 Read below for his enhancements:彼の拡張機能をご覧ください:


I’m using your gwping script.私はgwpingスクリプトを使用しています。 Realy usefull.本当に便利です。 I added posibility to send email, when routing table change:私追加されましたposibility電子メールを送信するときのルーティングテーブルの変更:

# cat /usr/local/sbin/gwping確認# cat / usr / local / sbin /にgwping
……. … … 。

EMAILFROM="root@myserver.example.com" emailfrom = " root@myserver.example.com "
EMAILTO="someone@example.com" emailto = " someone@example.com "
….. … ..

if [[ $CLS1 -eq 0 || $CLS2 -eq 0 ]]; thenもし[ [ $ cls1 -のEQ 0 | | $ cls2 -のEQ 0 ] ] ;入力し、
if [[ $LLS1 -eq 1 && $LLS2 -eq 0 ]]; thenもし[ [ $ lls1 -式1 & & $ lls2 -のEQ 0 ] ] ;入力し、
echo Switching to $NAME2エコー切り替えるには$名前
ip route replace default scope global via $GW2 dev $EXTIF2デフォルトのスコープのグローバルIPルート経由で置き換える$ $ gw2 devよりextif2
LSROUTE=$(ip route show) lsroute = $ ( IPルート詳細)
echo "$LSROUTE" | mail -s "GWPING - Routing table changed. Line $NAME1 is down."エコー" $ lsroute " |メール-秒" gwping -ルーティングテーブルが変更されました。ライン$スペースn ame1がダウンしています。 " -r $EMAILFROM $EMAILTO -研究$ emailfrom $ emailto
elif [[ $LLS1 -eq 0 && $LLS2 -eq 1 ]]; thenエリフ[ [ $ lls1 -のEQ 0 & & $ lls2 -式1 ] ] ;入力し、
echo Switching to $NAME1エコー切り替えるには$スペースname1
ip route replace default scope global via $GW1 dev $EXTIF1デフォルトのスコープのグローバルIPルート経由で置き換える$ $ gw1 devよりextif1
LSROUTE=$(ip route show) lsroute = $ ( IPルート詳細)
echo "$LSROUTE" | mail -s "GWPING - Routing table changed. Line $NAME2 is down."エコー" $ lsroute " |メール-秒" gwping -ルーティングテーブルが変更されました。ライン$名前がダウンしています。 " -r $EMAILFROM $EMAILTO -研究$ emailfrom $ emailto
elif [[ $LLS1 -eq 0 && $LLS2 -eq 0 ]]; thenエリフ[ [ $ lls1 -のEQ 0 & & $ lls2 -のEQ 0 ] ] ;入力し、
echo Restoring default load balancingエコーを復元するデフォルトのロードバランシング
#ip route replace default scope global via $GW1 dev $EXTIF1 # IPルートのデフォルトのスコープのグローバル経由で置き換える$ $ gw1 devよりextif1
ip route replace default scope global nexthop via $GW1 dev $EXTIF1 weight $W1 nexthop via $GW2 dev $EXTIF2 weight $W2 IPルートのデフォルトのスコープのグローバルnexthop経由で置き換える$ gw1 devより$ extif1重量$ w1 nexthop経由で$ gw2 devより$ extif2重量$図
LSROUTE=$(ip route show) lsroute = $ ( IPルート詳細)
echo "$LSROUTE" | mail -s "GWPING - Routing table changed. Both lines are up."エコー" $ lsroute " |メール-秒" gwping -ルーティングテーブルが変更されました。両方のラインがアップします。 " -r $EMAILFROM $EMAILTO -研究$ emailfrom $ emailto
fi
fi
sleep $SLEEPTIME睡眠$ sleeptime
done完了した

Also I’m starting this script as service from /etc/init.dこのスクリプトとしても私はサービス開始から/ etc / init.dに

# cat /etc/init.d/gwping確認# cat / etc / init.dに/ gwping
#!/bin/sh # ! / bin / shを
# Author: Viliam Kocinsky #著者: viliam kocinsky

### BEGIN INIT INFO # # #開始のinit情報をもっと見る
# Short-Description: Monitor Internet access connection links and modify kernel route if some link go down. #短い説明:モニタのインターネットアクセス接続のリンクやカーネルのルート変更する場合にいくつかのリンクにダウンします。
# Description: This is startup script for gwping script, that manage internet connection failover (if you have at least 2 providers). #説明:これはスタートアップスクリプトをgwpingスクリプトは、インターネット接続のフェールオーバーを管理する(プロバイダの場合には、少なくとも2 ) 。
# That is, it reguraly ping one IP address #これは、 1つのIPアドレスにpingを実行reguraly
# on internet through certain provider (but trying all) . #インターネット上の特定のプロバイダ経由(ただし、すべての試み) 。 If ping doesn’t come back, than it addjust kernel route table. pingを実行されない場合に帰って来てaddjust比べてカーネルのルーティングテーブルです。
# See inside script for details. #内のスクリプトを参照してください。 This script is from the website:このスクリプトは、ウェブサイト:
# http://blog.taragana.com/index.php/archive/how-to-load-balancing-failover-with-dual-multi-wan-adsl-cable-connections-on-linux/ # http://blog.taragana.com/index.php/archive/how-to-load-balancing-failover-with-dual-multi-wan-adsl-cable-connections-on-linux/
#
### END INIT INFO # # #最後のinit情報をもっと見る

command="$1"コマンド= " $ 1 "

case "$command" inケース" $コマンド"で
start)スタート]ボタンを)
echo "Starting gwping."エコー" gwpingを開始します。 "
/usr/local/sbin/gwping & / usr / local / sbin /にgwping &
echo $!エコー$ ! > /usr/local/share/gwping_pid > / usr /ローカル/共有/ gwping_pid
;; ; ;
stop)停止)
echo "Stoping gwping."エコー"ストーピングgwping 。 "
kill -9 $(cat /usr/local/share/gwping_pid) && rm /usr/local/share/gwping_pid殺す-9 $ (猫/ usr /ローカル/共有/ gwping_pid ) & & rm / usr /ローカル/共有/ gwping_pid
;; ; ;
*) * )
echo "Usage /etc/init.d/gwping start|stop"エコー"利用方法て/ etc / init.d / gwpingスタート|停止"
;; ; ;
esac