Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Alex Shevchuk                        2:5031/50.4    25 Nov 2001  19:34:18
 To : Valentin Davydov
 Subject : Ограничение траффика!
 -------------------------------------------------------------------------------- 
 
 25 Hоя 01, 13:34 писал Valentin Davydov мэссадж для Alex Shevchuk такого типа:
 
  >> Почитал я опять про пайпы... Это немного не то, что мне нужно! Мне
  >> нужно ограничить не пропускную способность канала, а количество
  >> скачанных/посланных байт! Я так понимаю, что нужно писать скрипт,
  >> который будет время от времени выдирать значения счетчиков из ipfw
  >> -a show, проверять их (я так понимаю, что это и есть количество
  >> пришедших/ущедших байтов?) на достижение предела (и, если он
  >> достигнут, убивать нужное правило) и пихать их в файл, а также скрипт,
  >> который при загрузке сервера будет восстанавливать значения этих
  >> счетчиков. Как мне это сделать???
  VD> Так и сделать. Пишешь скрипт (скажем, на авке), который раз в минуту
  VD> запускается по крону, говорит ipfw show, сбрасывает результат в лог,
  VD> обнуляет счётчики, перебирает правила, относящиеся к учитываемым
  VD> клиентам, для каждого клиента находит соответствующий файл, _вычитает_
  VD> оттуда накопившееся количество байт, и если остаток становится меньше
  VD> нуля, то прибивает соответствующее правило и вычищает его из
  VD> /etc/rc.firewall.local.
 
  Хм... Я авку не знаю (как, впрочем, и шелл), а потому залез на www.opennet.ru,
 и сделал, как там (тестовый вариант!), зацени:
 
  Правило разрешения на инет:
 
  ${fwcmd} add 55 pass all from any to any
 
  Скрипт, запускающийся раз в 5 минут:
 
 #!/bin/sh
 
 # Скрипт для сохранения текущих счетчиков брэндмауэра.
 
 if [ -f /myscripts/allow55.lock ]
 then
  # Hу не знаю я, как if not делать, не знаю! :)
 else
 
 if [ -f /myscripts/55.expired ]
 then
  # аналогично... :)
 else
 
 asize=`ipfw show 55 | awk '{ print $3 }'`
 bsize=`cat /myscripts/55.oldcount | awk '{ print $1 }'`
 
 csize=`expr $asize + $bsize`
 
 if [ $csize -gt 10000000 ]
 then
  size_K=`expr $csize / 1024`
  echo "Ваш месячный лимит на доступ в интернет исчерпан. Вы скачали $size_K
 килобайт данных!" | mail usverg@srv1.asciiz.ru
  ipfw delete 55
 echo expired! > /myscripts/55.expired
 fi
 
 echo $csize > /myscripts/55.count
 
 fi
 
 fi
 
 # End of file
 
 Часть файла rc.myfirewall:
 
 if [ -f /myscripts/55.expired ]
 then
         ${fwcmd} delete 55
 fi
 
 cp /myscripts/55.count /myscripts/55.oldcount
 
 # End of file
 
 Скрипт разрешения инета, запускается раз в месяц:
 
 #!/bin/sh
 
 echo Lock! > /myscripts/allow55.lock
 
 echo 0 > /myscripts/55.count
 echo 0 > /myscripts/55.oldcount
 ipfw delete 55
 ipfw add 55 pass all from any to any
 ipfw zero 55
 
 rm /myscripts/55.expired
 rm /myscripts/allow55.lock
 
 # End of file
 В этом творении меня смущают три вещи:
 
 1. ЖУТКАЯ загрузка системы! А полегче никак нельзя?
 2. Это ж каждые 5 минут идет обращение к винту! Его так и на год не хватит!
 3. А я вообще тот ли счетчик использую в качестве байтового или нет???
 Best regards, Alex.
 
 --- GoldED+/386 1.1.4.3
  * Origin: Тот, кто храпит, всегда засыпает первым. (2:5031/50.4)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Ограничение траффика!   Alex Shevchuk   23 Nov 2001 20:59:09 
 Re: Ограничение траффика!   Andy Bogdanov   24 Nov 2001 12:15:26 
 Ограничение траффика!   Alex Shevchuk   24 Nov 2001 18:00:28 
 Ограничение траффика!   Alex Shevchuk   25 Nov 2001 11:36:47 
 Re: Ограничение траффика!   Valentin Davydov   25 Nov 2001 14:34:45 
 Ограничение траффика!   Alex Shevchuk   25 Nov 2001 19:34:18 
 Re: Ограничение траффика!   Andrey Simonenko   26 Nov 2001 13:20:21 
 Ограничение траффика!   Ivan Voytas   26 Nov 2001 11:52:21 
 Re: Ограничение траффика!   Valentin Davydov   24 Nov 2001 14:44:36 
 Ограничение траффика!   Alex Shevchuk   24 Nov 2001 18:04:05 
Архивное /ru.unix.bsd/27283c013ccb.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional