Как сгенерировать множество схожих виртуальных интерфейсов?

Модератор: Модераторы разделов

Аватара пользователя
guglez
Сообщения: 394
ОС: GNU/Linux

Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение guglez »

Пишу скрипт генерации правил 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
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение Portnov »

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

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
Спасибо сказали:
Аватара пользователя
guglez
Сообщения: 394
ОС: GNU/Linux

Re: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение guglez »

О_о так просто? В любом случае огромное спасибо! Работает :) А два цикла внутрь друг друга можно? например если надо так:
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: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение Portnov »

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

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
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение watashiwa_daredeska »

Portnov писал(а):
16.01.2009 16:07
?
фигня получится.

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

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: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение guglez »

Я сделал как писал Portnov в 1м варианте! Все ок. А что делает это:

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: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение watashiwa_daredeska »

guglez писал(а):
17.01.2009 11:51
Я сделал как писал Portnov в 1м варианте! Все ок.
Странно. Разницу можно проиллюстрировать так:

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
Если я правильно понял, вам нужен именно второй вариант, а не "два цикла внутрь друг друга".

guglez писал(а):
17.01.2009 11:51
Почему 7:1 8:2 9:3 11:5 через двоеточие?
Потому что мне так нравится. :)

guglez писал(а):
17.01.2009 11:51
Что это - {i%:*} и это {i#*:}?
man bash, / {3}Parameter Expansion
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение pelmen »

guglez писал(а):
17.01.2009 11:51
Я сделал как писал Portnov в 1м варианте! Все ок.
у тебя должно получиться очень много алиасов с одним и тем же адресом (последним из второго цикла) :)
Спасибо сказали:
Аватара пользователя
guglez
Сообщения: 394
ОС: GNU/Linux

Re: Как сгенерировать множество схожих виртуальных интерфейсов?

Сообщение guglez »

Алиасов много, но адреса разные! Все подряд у меня идет.
Спасибо сказали: