[an error occurred while processing this directive]

Автоподъем pptp linux-клиента на Fedora Core Linux
После безуспешного шаманства вокруг pppd с использованием persist, holdof и maxfail
решил написать следующий скрипт. Запускается из rc.local

#!/usr/bin/perl
use strict;
use Net::Ping;
my $hping=Net::Ping->new("icmp");
my $s=0;
sub logger($) {
my @ldata=localtime;$ldata[5]+=1900;$ldata[4]+=1;
my $j = 0;
for ($j = 0;$j < 5; $j++) {
    if ($ldata[$j] <10) {
       $ldata[$j] = "0" . $ldata[$j];
    }
}
my $data1="$ldata[3]/$ldata[4]/$ldata[5] $ldata[2]:$ldata[1]:$ldata[0]";
open (MAN_LOG, ">>/var/log/ppp_watcher");
print MAN_LOG "pw: $data1\t$_[0]\n";
close(MAN_LOG)
}
logger("daemon started.");
`echo "kill -15 $$" > /root/ppp_watch.die`;
`chmod 0700 /root/ppp_watch.die`;
sub ppp_watch {
    my @presence=split(' ', `ifconfig | grep ppp0`);
    $presence[0].='';
    if ($presence[0] ne 'ppp0') {
	logger("trying to start daemon.");
	`route add -net <LOCAL NETWORK> netmask 255.255.255.0 gw <LOCAL GW> 2>/dev/null`;
	`sleep 2`;
	`pppd noauth nobsdcomp nodeflate name sspm pty "pptp <GW> --nolaunchpppd" 2>/dev/null`;
	`sleep 3`;
	`route add -net <IP> netmask 255.255.255.0 gw <GW> 2>/dev/null`;
	`sleep 2`;
	`route del -net 0.0.0.0 netmask 0.0.0.0 gw <LOCAL IP> 2>/dev/null`;
	`sleep 3`;
	`route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0`;
	$SIG{'ALRM'}='ppp_watch';
	logger("delaying for 20 sec...");
	alarm(20);
    } else {
	my @traff=split(' ', `pppstats | tail -1`);
	logger("watching, total traffic $traff[0]");
	$SIG{'ALRM'}='ppp_watch';
	alarm(5);
    }
}
ppp_watch;
sub ppp_die {
    $s=1;
}
$SIG{'TERM'}='ppp_die';
while ($s ne 1) {
}
logger("daemon stopped.");
exit 0;


Кроме всего прочего ведет лог состояния и трафика.
 
05.04.2005 , Автор: Abor Mot
Ключи: pptp, script, linux / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / PPP, PPTP, PPPOE

[an error occurred while processing this directive]

[an error occurred while processing this directive]