Re: Скрипт переключения каналов инернет
Добавлено: 2013-01-12 0:19:49
Здрасте всем.
Вот по просьбе товарища написал простенький скриптик для переключения каналов
Вот по просьбе товарища написал простенький скриптик для переключения каналов
Код: Выделить всё
#!/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