Страница 1 из 1

Построчное считывание из файла

Добавлено: 2011-03-01 14:15:26
mmvds
В отдельном файле есть таблица ip адресов и аргументов.

Код: Выделить всё

10.197.16.111/32 4096
10.197.16.112/32 1024
10.197.16.113/32 1024
10.197.16.121/32 6144
10.197.16.122/32 4096
10.197.16.125/32 1024
10.197.16.135/32 2560
10.197.16.139/32 2560
10.197.16.140/32 1024
Подскажите пожалуйста, как сделать цикл до конца файла выполняющий
ipfw table 11 add строка_из_файла

Re: Построчное считывание из файла

Добавлено: 2011-03-01 16:05:14
hizel
а нет возможности создавать файл формата:

Код: Выделить всё

table 11 add 10.197.16.111/32 4096
table 11 add 10.197.16.112/32 1024
....
и сувать напрямую в ipfw без преобразований, быстрее будет

вот тема http://forum.lissyara.su/viewtopic.php?f=8&t=25460 в которой Лис отловил багу по подобной задаче, в результате мы сделали мир чуть лучше :-)

Re: Построчное считывание из файла

Добавлено: 2011-03-01 16:21:23
mmvds
Вообще файл с Ip делается по крону

Код: Выделить всё

ipfw table 11 list > /etc/fw/11.list
хочу эту же таблицу восстанавливать после перезагрузки, тогда задача- создать файл с содержимым

Код: Выделить всё

#!/bin/sh
а далее строки
"ipfw table 11 add" + результат `ipfw table 11 list`

Re: Построчное считывание из файла

Добавлено: 2011-03-01 16:33:16
hizel
медленно


так мыслю быстрее, моднее и молодежнее
table.sh

Код: Выделить всё

#!/bin/sh

/sbin/ipfw table $1 list | while read line
do
  echo "table $1 add $line"
done
в кроне

Код: Выделить всё

/bin/sh /path/table.sh 11 > /etc/fw/11.list
восстанавливать

Код: Выделить всё

/sbin/ipfw /etc/fw/11.list

Re: Построчное считывание из файла

Добавлено: 2011-03-01 16:50:01
mmvds
Спасибо, то что нужно! Единственное у меня сомнения, сработает ли такой способ если ipwf встретится Ip уже добавленный в таблицу, пройдут ли остальные записи.

Re: Построчное считывание из файла

Добавлено: 2011-03-01 16:56:30
hizel

Код: Выделить всё

/sbin/ipfw -q /etc/fw/11.list
поможет

Re: Построчное считывание из файла

Добавлено: 2011-03-01 17:10:31
mmvds
еще раз спасибо, все работает