FreeBSd > Маршрутизация

Скрипт автоматического переключения между основным и резервным каналом

<< < (2/2)

muff:
Модифицируйте скрипт до такого состояния:


--- Код: ---#!/usr/bin/perl -w
 use strict;
 use warnings;
use Net::Ping::External qw(ping);
# 1 - автоматический режим переключение канала
# 2 - принудительное переключение на второй канал.
my $action = 1;
 my $host_gw = "85.21.230.141"; # default gateway
 my $gw = "95.104.192.36"; # backup gateway
 my $now = localtime time;
 my $log = "/var/log/route-change.log";
if($action == 1){
my $command = `netstat -rn | grep default`;
    open(LOG,">>$log");
        print LOG "[!] $now netstat1: $command\n";
    close(LOG)
 my @b = split('\s+',$command,3);
if (ping(hostname=>$host_gw, count=>5)){
    print "host $host_gw is ok\n";
        if($b[1] ne $host_gw){
            if($b[1] eq ""){
                `route add default $host_gw`;
            }else{
                `route change default $host_gw`;
                open(LOG,">>$log");
                    print LOG "[!] $now Route change to $host_gw\n";
                close(LOG);
            }
        }
 }else{
    print "host $host_gw is bad.\n";
if($b[1] ne $gw){
      `route change default $gw`;
    open(LOG,">>$log");
        print LOG "[!] $now Route change to $gw\n";
    close(LOG);
    }
 }
 }
if($action == 2){
my $command = `netstat -rn | grep default`;
    open(LOG,">>$log");
        print LOG "[!] $now netstat2: $command\n";
    close(LOG)
 my @b = split('\s+',$command,3);
if($b[1] ne $gw){
    if($b[1] eq ""){
        `route add default $gw`;
    }else{
        `route change default $gw`;
        open(LOG,">>/change_route.log");
            print LOG "[!] $now Route change to $gw\n";
        close(LOG);
    }
    }
 }

--- Конец кода ---

И дайте вывод того, что пишется в логи.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии