Пишу скрипт генерации правил IPTABLES. По ходу нужно поднять кучу виртуальных интерфейсов ака алиасов.
Задача - поднять скриптом 24 алиаса. Айпишники могут идти подрят, а могут и нет.
грубо говоря выглядеть должно так:
ifconfig eth2:1 192.168.0.1 netmask 255.255.255.224 up
ifconfig eth2:2 192.168.0.2 netmask 255.255.255.224 up
ifconfig eth2:3 192.168.0.3 netmask 255.255.255.224 up
ifconfig eth2:5 192.168.0.5 netmask 255.255.255.224 up
Как сгенерировать множество схожих виртуальных интерфейсов?
Модератор: Модераторы разделов
-
guglez
- Сообщения: 394
- ОС: GNU/Linux
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
Код: Выделить всё
for I in 1 2 3 5 10
do ifconfig eth2:$I 192.168.0.$I ...
done?
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
guglez
- Сообщения: 394
- ОС: GNU/Linux
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
О_о так просто? В любом случае огромное спасибо! Работает
А два цикла внутрь друг друга можно? например если надо так:
ifconfig eth2:7 192.168.0.1 netmask 255.255.255.224 up
ifconfig eth2:8 192.168.0.2 netmask 255.255.255.224 up
ifconfig eth2:9 192.168.0.3 netmask 255.255.255.224 up
ifconfig eth2:11 192.168.0.5 netmask 255.255.255.224 up
ifconfig eth2:7 192.168.0.1 netmask 255.255.255.224 up
ifconfig eth2:8 192.168.0.2 netmask 255.255.255.224 up
ifconfig eth2:9 192.168.0.3 netmask 255.255.255.224 up
ifconfig eth2:11 192.168.0.5 netmask 255.255.255.224 up
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
Код: Выделить всё
for I in 1 2 3 5 10
do for J in 5 10 15 20
do ifconfig ... $I ... $J
done
done?
http://wiki.ru.unix-like.info/Bash_Scripting_Guide
BASH Scripting
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
фигня получится.
Код: Выделить всё
for i in 7:1 8:2 9:3 11:5; do
ifconfig eth2:${i%:*} ... 192.168.0.${i#*:}
doneМои розовые очки
-
guglez
- Сообщения: 394
- ОС: GNU/Linux
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
Я сделал как писал Portnov в 1м варианте! Все ок. А что делает это:
Почему 7:1 8:2 9:3 11:5 через двоеточие? Что это - {i%:*} и это {i#*:}?
watashiwa_daredeska писал(а): ↑16.01.2009 20:23Код: Выделить всё
for i in 7:1 8:2 9:3 11:5; do ifconfig eth2:${i%:*} ... 192.168.0.${i#*:} done
Почему 7:1 8:2 9:3 11:5 через двоеточие? Что это - {i%:*} и это {i#*:}?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
Странно. Разницу можно проиллюстрировать так:
user@host
~$ for i in 1 2 3; do for j in 5 6 7; do echo $i $j; done; done
1 5
1 6
1 7
2 5
2 6
2 7
3 5
3 6
3 7
~$ for i in 1:5 2:6 3:7; do echo ${i%:*} ${i#*:}; done
1 5
2 6
3 7
Потому что мне так нравится.
man bash, / {3}Parameter Expansion
Мои розовые очки
-
pelmen
- Сообщения: 1268
- ОС: debian
-
guglez
- Сообщения: 394
- ОС: GNU/Linux
Re: Как сгенерировать множество схожих виртуальных интерфейсов?
Алиасов много, но адреса разные! Все подряд у меня идет.