- Народ! кому нужен скрипт на перле?, ERA, 06:48 , 01-Апр-03 (1)
>Долго роясь в инете и получая подзатыльники за вопрос как можно сделать >скрипт а не прогу чтобы свободно снимать счетчики минуя БД...скидывать на >файл....для выделенки ~128 кб/с сделал все же....думаю что то что надо! > >кому надо мыльте ..скину скрипт с подробным объяснением или в форуме кину... > Абсолютно бесплатно..спояснениями.... 1. значит лезешь в rc.firewall где лежат правила для твоего IPFW(если у тебя не ipfw вопрос разу отваливается) к примеру 100 add count tcp from ant to ${внешний ip} in via ${внешний интерфейс} 2. проверяешь...#: ipfw s 100 (команда для показа 100 правила..получаешь типа 00100 34 245 count tcp ......) 3.если все работает пишешт такой скрипт: #! /usr/bin/perl $file="/var/log/counts/allin.txt"; #затем открываешь файл open FF, "<$file"; #обзываешь переменную для снятия содержимого файла $s=<FF>; close(FF);#закрываем файл для чтения #затем приступаешь не посредственно к правилу(кавычки не простые как эти -> ' а #консольные ` (нажатие клавиши тильда (тама 'ё' написанно) $r1=`/sbin/ipfw s 100`; #затем пилим полученные резальтат в массив через пробел(то есть все значения #разбиваются по пробелам @s1=split(/ /,$r1); #получаем элементы массива вида: нулевой 00100, первый 17, второй(он нас и #интересует) 1152 , третий count , ... tcp, ... from, ... any, .... to.....и т.д. #тут есть одно но....когда счетчики равны 0 то все элементы строки идут через #пробел..поэтому проблем в снятии второго элемента массива нет.....но когда #счетчики становятся не нулевыми то почему то число пробелов между ними #достигает трех и далее.... #поэтому минуя тяжелые вычислении через условия этого второго счетчика я решил #посчитать все элементы масива и вычесть с конца кол-во элемнтов до счетчика #00100 17 1152 count tcp from xxx.xxx.xxx.xxx to any in recv ed0 получаем что 1152 будет #10 элементом с конца..... пишем $i=@s1; #вычисляем все количество элементов $z=$s1[$i-10];#находим в массиве счетчик как 10 элемент с конца open FF, ">$file";#открыаем файл на чтение $traff=$s+$z;#прибавляем к старой переменной (считанной раннее из файла) новую print FF $traff; #перезаписываем счетчик в файле(миссия выполнена); close(FF);#закрываем файл $flush=`/sbin/ipfw z 100`;#Обнуляем счетчик split(/ /, $flush);#Обнуляем счетчик
- Народ! кому нужен скрипт на перле?, ERA, 06:50 , 01-Апр-03 (2)
>>Долго роясь в инете и получая подзатыльники за вопрос как можно сделать >>скрипт а не прогу чтобы свободно снимать счетчики минуя БД...скидывать на >>файл....для выделенки ~128 кб/с сделал все же....думаю что то что надо! >> >>кому надо мыльте ..скину скрипт с подробным объяснением или в форуме кину... >> >Абсолютно бесплатно..спояснениями.... >1. значит лезешь в rc.firewall где лежат правила для твоего IPFW(если у >тебя не ipfw вопрос разу отваливается) >к примеру 100 add count tcp from ant to ${внешний ip} in >via ${внешний интерфейс} >2. проверяешь...#: ipfw s 100 (команда для показа 100 правила..получаешь типа 00100 >34 245 count tcp ......) >3.если все работает пишешт такой скрипт: >#! /usr/bin/perl >$file="/var/log/counts/allin.txt"; >#затем открываешь файл >open FF, "<$file"; >#обзываешь переменную для снятия содержимого файла >$s=<FF>; >close(FF);#закрываем файл для чтения >#затем приступаешь не посредственно к правилу(кавычки не простые как эти -> ' а #консольные ` (нажатие клавиши тильда (тама 'ё' написанно) >$r1=`/sbin/ipfw s 100`; >#затем пилим полученные резальтат в массив через пробел(то есть все значения #разбиваются >по пробелам >@s1=split(/ /,$r1); >#получаем элементы массива вида: нулевой 00100, первый 17, второй(он нас и #интересует) >1152 , третий count , ... tcp, ... from, ... any, >.... to.....и т.д. >#тут есть одно но....когда счетчики равны 0 то все элементы строки идут >через #пробел..поэтому проблем в снятии второго элемента массива нет.....но когда #счетчики >становятся не нулевыми то почему то число пробелов между ними #достигает >трех и далее.... >#поэтому минуя тяжелые вычислении через условия этого второго счетчика я решил #посчитать >все элементы масива и вычесть с конца кол-во элемнтов до счетчика > >#00100 17 1152 count tcp from xxx.xxx.xxx.xxx to any in recv ed0 >получаем что 1152 будет #10 элементом с конца..... пишем >$i=@s1; #вычисляем все количество элементов >$z=$s1[$i-10];#находим в массиве счетчик как 10 элемент с конца >open FF, ">$file";#открыаем файл на чтение >$traff=$s+$z;#прибавляем к старой переменной (считанной раннее из файла) новую >print FF $traff; #перезаписываем счетчик в файле(миссия выполнена); >close(FF);#закрываем файл >$flush=`/sbin/ipfw z 100`;#Обнуляем счетчик >split(/ /, $flush);#Обнуляем счетчик в конце такая строчка//open FF, ">$file";#открыаем файл на чтение ошибочка: не открываем файна чтение а открываем файл на запись
- Народ! кому нужен скрипт на перле?, dawnshade, 09:18 , 01-Апр-03 (3)
Ради интереса, мерял скоко он у тя процессорного времени жрет хотя бы за неделю и на какой машине?
- Народ! кому нужен скрипт на перле?, ERA, 09:26 , 01-Апр-03 (4)
>Ради интереса, мерял скоко он у тя процессорного времени жрет хотя бы >за неделю и на какой машине? подгружает но наскока не знаю....в любом случае не рекомендаю его пускать в кроне меньше чем через минуту.. да хрен знает тут сервак стоит пень 166 с 48 метрами оперативы на нем прокся, мыло , файервол, антискан портов, счетчики, еще и sshd висит, апач с модулями пхп и перл....вроде работает..не замечал особо тормозов....выделенка 128 кб/сек..был бы Ethernet тут бы другие подходы были бы...
- Народ! кому нужен скрипт на перле?, ERA, 09:34 , 01-Апр-03 (5)
>>Ради интереса, мерял скоко он у тя процессорного времени жрет хотя бы >>за неделю и на какой машине? > >подгружает но наскока не знаю....в любом случае не рекомендаю его пускать в >кроне меньше чем через минуту.. >да хрен знает тут сервак стоит пень 166 с 48 метрами оперативы > >на нем прокся, мыло , файервол, антискан портов, счетчики, еще и sshd >висит, апач с модулями пхп и перл....вроде работает..не замечал особо тормозов....выделенка >128 кб/сек..был бы Ethernet тут бы другие подходы были бы... еще про логчек забыл и докторвэб для сендмайла ...и работает...консоль не лагает вроде
- Народ! кому нужен скрипт на перле?, Mironimus, 11:47 , 03-Апр-03 (6)
>>>Ради интереса, мерял скоко он у тя процессорного времени жрет хотя бы >>>за неделю и на какой машине? >> >>подгружает но наскока не знаю....в любом случае не рекомендаю его пускать в >>кроне меньше чем через минуту.. >>да хрен знает тут сервак стоит пень 166 с 48 метрами оперативы >> >>на нем прокся, мыло , файервол, антискан портов, счетчики, еще и sshd >>висит, апач с модулями пхп и перл....вроде работает..не замечал особо тормозов....выделенка >>128 кб/сек..был бы Ethernet тут бы другие подходы были бы... > >еще про логчек забыл и докторвэб для сендмайла ...и работает...консоль не лагает >вроде ПРИКОЛЬНО
|