The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"perl скрипт... ваше мнение ?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"perl скрипт... ваше мнение ?"
Сообщение от Grayich emailИскать по авторуВ закладки(??) on 03-Дек-04, 09:40  (MSK)
Приветы всем !
Хотелось бы услышать замечания по этому скрипту. я начинающий PERLовик, поэтому хотелось бы узнать что я делаю через Ж.

------------------------------------------------------------------
#!/usr/local/bin/perl
$ip=@ARGV[0];
$data_left_y=@ARGV[1];
$data_left_m=@ARGV[2];
$data_left_d=@ARGV[3];
$data_left_h=@ARGV[4];
$data_left_min=@ARGV[5];
$data_left=$data_left_y . $data_left_m . $data_left_d . $data_left_h . $data_left_min;
#
$data_right_y=@ARGV[6];
$data_right_m=@ARGV[7];
$data_right_d=@ARGV[8];
$data_right_h=@ARGV[9];
$data_right_min=@ARGV[10];
$data_right=$data_right_y . $data_right_m . $data_right_d . $data_right_h . $data_right_min;
#
$traff_in=0;
$traff_out=0;
$traff_in_all=0;
$traff_out_all=0;
#
$day=($data_left_y . $data_left_m . $data_left_d)-1;
do {
$day=$day+1;
open(FILE, "/var/trafd/BAC/$day") || print "";
while(<FILE>)
    {
     s/\n//g;
s/ //g;
($ip1,$port1,$ip2,$port2,$proto_a,$data,$alldata,$time_y,$time_m,$time_d,$time_h,$time_min ) = split(/:/,$_);
$time=$time_y . $time_m . $time_d . $time_h . $time_min;
if ($time >= $data_left && $time <= $data_right )
{
if ($ip1 eq $ip) {$traff_out+=$data; $traff_out_all+=$alldata };
if ($ip2 eq $ip) {$traff_in+=$data; $traff_in_all+=$alldata };
}
    }
close(FILE);
} until $day >= $data_right_y . $data_right_m . $data_right_d;
print "$ip\n";
print "$traff_out\n";
            print "$traff_in\n";
print "$traff_out_all\n";
            print "$traff_in_all\n";
------------------------------------------------------------------

/var/trafd/BAC/  тестовые файлы вида:
20041113
20041114
20041115
и т.д.

содержимое вида:
192.168.10.1      :2601  :194.67.28.104     :80    :tcp :     2303:      3103: 200411131635
192.168.10.1      :1370  :205.188.11.228    :5190  :tcp :      599:      1079: 200411131635
192.168.10.1      :2618  :212.45.20.167     :80    :tcp :      716:      1644: 200411131635
194.135.19.14     :80    :192.168.10.16     :2544  :tcp :    95005:    105325: 200411131635
194.135.19.14     :80    :192.168.10.16     :2547  :tcp :    82042:     92362: 200411131635
194.135.19.14     :80    :192.168.10.16     :2552  :tcp :    82034:     92354: 200411131635
192.168.10.16     :2552  :194.135.19.14     :80    :tcp :        0:     10200: 200411131635
192.168.10.16     :2544  :194.135.19.14     :80    :tcp :        0:     10200: 200411131635
192.168.10.16     :2547  :194.135.19.14     :80    :tcp :        0:     10200: 200411131635
205.188.9.129     :5190  :192.168.10.21     :1487  :tcp :     1944:      2624: 200411131635
217.174.96.78     :80    :192.168.10.2      :1698  :tcp :   335830:    347310: 200411131640
192.168.10.2      :1698  :217.174.96.78     :80    :tcp :        0:      8800: 200411131640
192.168.10.9      :1968  :82.138.20.87      :80    :tcp :     4981:      7349: 200411131640
192.168.10.9      :1969  :82.138.20.87      :80    :tcp :     2518:      6646: 200411131640

скрипт запускается:
./traf.pl 192.168.10.1 2004 11 13 08 00 2004 11 14 08 00
т.е. подсчитать трафик по 192.168.10.1
в период с 2004.11.13 08:00
         по 2004.11.14 08:00

Буду рад любым замечаниям. Спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "perl скрипт... ваше мнение ?"
Сообщение от rWizard emailИскать по авторуВ закладки(ok) on 04-Дек-04, 19:38  (MSK)
ИМХО так:
my ($ip,
$data_left_y, $data_left_m, $data_left_d, $data_left_h, $data_left_min,
$data_right_y, $data_right_m, $data_right_d, $data_right_h, $data_right_min ) = @ARGV;

Будет удобнее. ещё посоветовал-бы сразу писать с включенныпи ограниченияпи коппилятора (use strict;) - а то проблеммы с отладкой начнуться уже на 50-ти строчных скриптах.

ну и если скрипт будет использоваться неавторизованными пользователями, то я-бы посоветовал фильтровать входные данные.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "perl скрипт... ваше мнение ?"
Сообщение от mthawk emailИскать по авторуВ закладки(ok) on 05-Дек-04, 20:51  (MSK)
$data_left=join('',@ARGV[1..5])
все остальное по аналогии.
Для вычисления дат и работы с временными интервалами воспользуйся модулем Date::Calc
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "perl скрипт... ваше мнение ?"
Сообщение от Grayich emailИскать по авторуВ закладки(??) on 13-Дек-04, 17:11  (MSK)
Всем спасибо!
Теперь напорядок легче быстрее и читаемей скрипты стали !

Правда вот тут одна ерунда возникла, маленькие скриптики непроблемма, а вот с большими работать трудно. Есть ли софт под это дело какой консольный (я работаю удаленно через SSH) для перл писания более комфортного (подсветка, проверка синтаксиса и т.д. )

На FreeBsd софтину, просто многое можно и локально писать и натойже винде :) но некоторые скрипты требуют присутствия на рабочей машине, а доступ к ней только удаленный :(

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "perl скрипт... ваше мнение ?"
Сообщение от rWizard emailИскать по авторуВ закладки(??) on 13-Дек-04, 22:01  (MSK)
Я в нечале использовал mcedit (редактор из комплета mc ) - подсветка синтаксиса, "удержание табуляции". Для больших проэктов сейчас использую eclipce + EPIC (полноценная IDE)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "perl скрипт... ваше мнение ?"
Сообщение от dima Искать по авторуВ закладки(??) on 14-Дек-04, 16:09  (MSK)
>Я в нечале использовал mcedit (редактор из комплета mc ) - подсветка
>синтаксиса, "удержание табуляции". Для больших проэктов сейчас использую eclipce + EPIC
>(полноценная IDE)

где взять eclipce + EPIC ???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "perl скрипт... ваше мнение ?"
Сообщение от rWizard emailИскать по авторуВ закладки(??) on 15-Дек-04, 03:27  (MSK)
>>Я в нечале использовал mcedit (редактор из комплета mc ) - подсветка
>>синтаксиса, "удержание табуляции". Для больших проэктов сейчас использую eclipce + EPIC
>>(полноценная IDE)
>
>где взять eclipce + EPIC ???
https://www.opennet.ru/prog/info/2371.shtml
https://www.opennet.ru/prog/info/2372.shtml

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "perl скрипт... ваше мнение ?"
Сообщение от Аноним emailИскать по авторуВ закладки on 14-Дек-04, 06:44  (MSK)
>Правда вот тут одна ерунда возникла, маленькие скриптики непроблемма, а вот с
>большими работать трудно. Есть ли софт под это дело какой консольный
>(я работаю удаленно через SSH) для перл писания более комфортного (подсветка,
>проверка синтаксиса и т.д. )
>

Попробуй vim.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру