Добрый день!
Помогите, подскажите как написать следующий скрипт. Я в Perl'е новичек.
Имеем: Сервер Ubuntu 12.04, как шлюз интернет. На нем - Сервер DHCP, Прокси-сервер Squid, SquidGuard и SARG. Пользователи ходят в инет без всяких авторизаций. SARG генерит отчеты, кто и куда ходил. Но вместо имен компьютеров в отчете IP адреса. SARG умеет разрешать имена хостов из адресов, но для этого ему надо файл формата IP:host_name.
Теперь собственно вопрос... На просторах данного сайта нашел варианты в теме Не слишком ли громоздко? Второй вариант что смог доработал, убрал вывод ненужных данных о дате лизинга адреса, но теперь не могу понять как реализовать запись этого дела в файл и исключение повторяющихся записей. Прошу помощи.
#!/usr/bin/perl
open(InFile, "/var/lib/dhcp/dhcpd.leases") || die;
while ($line = <InFile>)
{
($n1, $n2, $n3, $n4) = split (" ", $line);
if ($n1 eq "lease")
{
$ip=$n2;
}
if ($n1 eq "starts")
{
$sdate=$n3;
}
if ($n1 eq "ends")
{
$edate=$n3;
}
if ($n1 eq "hardware")
{
$mak=$n3;
}
if ($n2 eq "ddns-fwd-name")
{
$name=$n4;
}
if ($ip gt "" & $sdate gt "" & $edate gt "" & $mak gt "" & $name gt "")
{
chop ($mak);
chop ($name);
$lenname = length ($name);
$n = substr ($name, "1" , $len-2);
print $ip , " ", $sdate, " ", $edate, " ", $mak, " ", $n, " ", "\n";
$sdate="";
$edate="";
$mak="";
$name="";
$n="";
$lenname="";
}
}
close ( InFile );За ранее спасибо.
