Страница 2 из 2

Re: Скрипт переключения каналов инернет

Добавлено: 2013-01-12 0:19:49
harmless
Здрасте всем.
Вот по просьбе товарища написал простенький скриптик для переключения каналов

Код: Выделить всё

#!/bin/sh

ping0=`/usr/sbin/setfib -0 /sbin/ping -c 2 8.8.8.8 | grep packets | cut -c 24-24`
ping1=`/usr/sbin/setfib -1 /sbin/ping -c 2 8.8.8.8 | grep packets | cut -c 24-24`

routechk0="`/usr/sbin/setfib -0 netstat -rn | fgrep default | awk '{print $2}'`"
routechk1="`/usr/sbin/setfib -1 netstat -rn | fgrep default | awk '{print $2}'`"

gw0="10.1.1.1"
gw1="10.2.2.1"

server="8.8.8.8"

if [ $ping0 = 2 ] && [ $ping1 = 2 ]
then
        if [ $routechk0 = $gw1 ]
        then
                echo "Changing the channel to the main.";
                echo "/usr/sbin/setfib -0 route change default $gw1";
                echo "/usr/sbin/setfib -1 route change default $gw0";
        else
                echo "it's ok, i will repeat check again at 1 minute";
        fi
elif [ $ping0 = 0 ]
then
        if [ $routechk0 = $gw1 ]
        then
                echo "Backup channel is down.";
                echo "Changing the channel to the main.";
                echo "/usr/sbin/setfib -0 route change default $gw0";
                echo "/usr/sbin/setfib -1 route change default $gw1";
        elif [ $routechk0 = $gw0 ]
        then
                echo "Main channel is down.";
                echo "Changing the channel to the backup.";
                echo "/usr/sbin/setfib -0 route change default $gw1";
                echo "/usr/sbin/setfib -1 route change default $gw0";
        fi
elif [ $ping1 = 0 ]
then
        if [ $routechk0 = $gw1 ]
        then
                echo "Main channel is down.";
                echo "Working on the backup channel.";
        else
                echo "Backup channel is down.";
                echo "Working on the main channel.";
        fi
else
        echo "Unknown result.";
fi

Re: Скрипт переключения каналов инернет

Добавлено: 2013-01-13 3:35:51
harmless
Чуть видоизменил скрипт

Код: Выделить всё

#!/bin/sh

SetFIB="/usr/sbin/setfib "
ping="/sbin/ping "
grep="/usr/bin/grep "
awk="/usr/bin/awk "
route="/sbin/route "

ping0=`${SetFIB} -0 ${ping} -c 2 8.8.8.8 | ${grep} packets | ${awk} '{print $4}'`
ping1=`${SetFIB} -1 ${ping} -c 2 8.8.8.8 | ${grep} packets | ${awk} '{print $4}'`

routechk0="`${SetFIB} -0 ${route} -n get default | ${grep} gateway | ${awk} '{print $2}'`"
routechk1="`${SetFIB} -1 ${route} -n get default | ${grep} gateway | ${awk} '{print $2}'`"

gw0="10.1.1.1"
gw1="10.2.2.1"

server="8.8.8.8"

log(){
        logger -t CannelSwitcher -i $1;
}

cangeGW(){
        ${SetFIB} -0 ${route} change default $1;
        ${SetFIB} -1 ${route} change default $2;
}

if [ $ping0 = 2 -a $ping1 = 2 ]
then
        if [ $routechk0 = $gw1 ]
        then
                log "Changing the channel to the main.";
                cangeGW $gw0 $gw1;
        else
                log "it's ok, i will repeat check again at 1 minute";
        fi
elif [ $ping0 = 0 ]
then
        if [ $routechk0 = $gw1 ]
        then
                log "Backup channel is down. Changing the channel to the main.";
                cangeGW $gw0 $gw1;
        elif [ $routechk0 = $gw0 ]
        then
                log "Main channel is down. Changing the channel to the backup.";
                cangeGW $gw1 $gw0;
        fi
elif [ $ping1 = 0 ]
then
        if [ $routechk0 = $gw1 ]
        then
                log "Main channel is down. Working on the backup channel.";
        else
                log "Backup channel is down. Working on the main channel.";
        fi
else
        log "Unknown result.";
fi

Re: Скрипт переключения каналов инернет

Добавлено: 2013-09-12 16:13:33
Саша2
куда вписать
8)
1.ipnat -CF -f /etc/ipnat.rules
2.ipnat -CF -f /etc/ipnaty.rules



1.echo nameserver 194.44.214.40 >> /etc/resolv.conf
2.echo nameserver 213.130.16.3 >> /etc/resolv.conf
:evil: