The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Народ! кому нужен скрипт на перле?, !*! ERA, 01-Апр-03, 05:41  [смотреть все]
Долго роясь в инете и получая подзатыльники за вопрос как можно сделать скрипт а не прогу чтобы свободно снимать счетчики минуя БД...скидывать на файл....для выделенки ~128 кб/с сделал все же....думаю что то что надо!
кому надо мыльте ..скину скрипт с подробным объяснением или в форуме кину...
  • Народ! кому нужен скрипт на перле?, !*! 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 тут бы другие подходы были бы...
              >
              >еще про логчек забыл и докторвэб для сендмайла ...и работает...консоль не лагает
              >вроде

              ПРИКОЛЬНО




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

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