The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Fedora на пути к изменению наименования сетевых интерфейсов, opennews (??), 24-Янв-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


17. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от denis111 (ok), 24-Янв-11, 23:09 
Экейпить будут :)
Ответить | Правка | Наверх | Cообщить модератору

18. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от pavlinux (ok), 24-Янв-11, 23:17 
> Экейпить будут :)

Угу


#!/bin/bash
CARDS="'pci0#0' 'pci0#1' 'pci0#2' 'pci0#3'"

for i in $CARDS
     do
     echo iptables -s $i -j DROP;
done

$ sh ./test.sh

iptables -s 'pci0#0' -j DROP
iptables -s 'pci0#1' -j DROP
iptables -s 'pci0#2' -j DROP
iptables -s 'pci0#3' -j DROP

Наскока помню, ,баш интерпретирует 'str' как (const char *), а "str" как (char *)
Ну не знаю, как это ядру понравиться... мож и прокатит.

Ответить | Правка | Наверх | Cообщить модератору

25. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от iZEN (ok), 25-Янв-11, 00:13 
>iptables -s 'pci0#0' -j DROP

У линуксятников разве нельзя дать физическому устройству другое имя (я не говорю про alias)?

В FreeBSD это делается в /etc/rc.conf.local:
ifconfig_em0_name="net0"
ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00"
И дальше, например в PF, можно использовать интерфейс "net0" вместо физического "em0".

Ответить | Правка | Наверх | Cообщить модератору

37. "Fedora на пути к изменению наименования сетевых интерфейсов"  +3 +/
Сообщение от pavlinux (ok), 25-Янв-11, 01:39 
>>iptables -s 'pci0#0' -j DROP
> У линуксятников разве нельзя дать физическому устройству другое имя (я не говорю
> про alias)?
> В FreeBSD это делается в /etc/rc.conf.local:
> ifconfig_em0_name="net0"
> ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00"
> И дальше, например в PF, можно использовать интерфейс "net0" вместо физического "em0".

Слухай..., не нету, надо патчу замутить... типа:

# ifconfig eth0 alias vasya_pupkin_setevuxa0


Ответить | Правка | Наверх | Cообщить модератору

38. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от Serge (??), 25-Янв-11, 01:41 
> У линуксятников разве нельзя дать физическому устройству другое имя (я не говорю про alias)?

все можно. можно переименовать девайс, можно переименовать линк.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

42. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от pavlinux (ok), 25-Янв-11, 02:26 
>> У линуксятников разве нельзя дать физическому устройству другое имя (я не говорю про alias)?
> все можно. можно переименовать девайс, можно переименовать линк.

Примеры можно

Это всем известно...
ifconfig eth0:1 192.168.0.1
ifconfig eth0:2 192.168.0.2
...
ifconfig eth0:fe 192.168.0.254

Как сделать, чтоб ifconfig em0 был равен ifconfig eth0 ?

# ip link del eth0
# ip link set eth0 name em0

Нехорошо, eth0 исчезнет.

# ip link set eth0 alias em0
Почти работает, но:

# ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UNKNOWN qlen 128
    link/ether 00:e0:81:67:f4:9f brd ff:ff:ff:ff:ff:ff
   alias em0

# ip link show em0
Device "em0" does not exist.
# ping -I em0 ya.ru
ping: unknown iface em0
# ifconfig em0
em0: error fetching interface information: Device not found

Ответить | Правка | Наверх | Cообщить модератору

44. "Fedora на пути к изменению наименования сетевых интерфейсов"  +2 +/
Сообщение от Serge (??), 25-Янв-11, 03:13 
Я сказал - переименовать.

# ip link del eth0
# ip link set eth0 name em0
это -  переименовать линк. udev может переименовывать девайсы.

Как дать второе имя (aka link name alias) Вы сами же и написали - но, кажется, не работает. Мне это никогда не было нужно - наверное я не один такой и никто не тестил эту фичу.

Ответить | Правка | Наверх | Cообщить модератору

48. "Fedora на пути к изменению наименования сетевых интерфейсов"  –3 +/
Сообщение от Аноним123321 (ok), 25-Янв-11, 05:20 
>[оверквотинг удален]
> done
>
> $ sh ./test.sh
> iptables -s 'pci0#0' -j DROP
> iptables -s 'pci0#1' -j DROP
> iptables -s 'pci0#2' -j DROP
> iptables -s 'pci0#3' -j DROP
> Наскока помню, ,баш интерпретирует 'str' как (const char *), а "str" как
> (char *)
> Ну не знаю, как это ядру понравиться... мож и прокатит.

эх bash-программисты!

ну вот зачем вы программируете на bash?

почемубы вам не писать скрипты на привычном-для-вас Perl/Python/PHP/C++ ??

а если уж решили чтото сделать ВСЁТАКИ на Bash --то

1. неужеле было так трудно погуглить о том как производиться "работа с массивами" на bash?
2. неужеле так трудно ВЕЗДЕ ставить ковычки при работе со строковыми переменными?

 
#!/bin/bash
CARDS=("pci0#0" "pci0#1" "pci0#2" "pci0#3")

for i in "${CARDS[@]}"
do
    echo iptables -s "$i" -j DROP;
done

СТЫДНо ДОЛЖНОБЫТЬ!

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

55. "Fedora на пути к изменению наименования сетевых интерфейсов"  +7 +/
Сообщение от pavlinux (ok), 25-Янв-11, 06:28 

Тема про имена, а не программирование на баше.
Без тебя разберёмся куда-чего писать.

#!/bin/bash

СARDS="0 1 2 3"
for i in $CARDS
do
    echo iptables -s "pci#$i" -j DROP;
done

#!/bin/bash
for i in `seq 0 3`
do
    echo iptables -s "pci#$i" -j DROP;
done

#!/bin/bash

for ((i=0; i<= 3; i++))
do
    echo iptables -s "pci#$i" -j DROP;
done

Ответить | Правка | Наверх | Cообщить модератору

57. "Fedora на пути к изменению наименования сетевых интерфейсов"  –4 +/
Сообщение от Аноним123321 (ok), 25-Янв-11, 06:35 
тоже выход!

молодец, выкрутился! :-)

но тему работы с bash-массивами -- советую вам всётаки подучить

Ответить | Правка | Наверх | Cообщить модератору

157. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от Аноним (-), 26-Янв-11, 09:05 
> тоже выход!
> молодец, выкрутился! :-)
> но тему работы с bash-массивами -- советую вам всётаки подучить

а мы пользуемся все так же sh, что бы универсально было, и там нет массивов.

Ответить | Правка | Наверх | Cообщить модератору

76. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от тигар (ok), 25-Янв-11, 09:58 
pavlinux, я тебя, кажется, начинаю ненавидеть:)

> #!/bin/bash

[skipped]

> $ sh ./test.sh

ну и, походу скрипта, где ты хоть 1 фичу bash заюзал?

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

106. "Fedora на пути к изменению наименования сетевых интерфейсов"  +1 +/
Сообщение от pavlinux (ok), 25-Янв-11, 18:45 
> pavlinux, я тебя, кажется, начинаю ненавидеть:)

Меня низя не навидить, я белое и пушистое :)


Ответить | Правка | Наверх | Cообщить модератору

53. "Fedora на пути к изменению наименования сетевых интерфейсов"  –3 +/
Сообщение от Аноним123321 (ok), 25-Янв-11, 06:04 
> Экейпить будут :)

95% людей кто пишет bash-скрипты (у себя в собственном линуксе на коленке) -- даже не знают что такое "экранизация" в bash :-D

для них функция quote() -- это вообще просто какаято невиданная непонятная фигня

вот сейчас я покажу пример как можно послать команду на удалённый ssh-сервер чтобы удалённый ssh-сервер создал удалённый файл с произвольным именем и содержанием:


#!/bin/bash

remote_addr="$1"
file_name="$2"
file_content="$3"

if [ $# != 3 ]
then
    echo "пожалуйста укажите <удалённый-адресс> <имя-файла> <содержимое файла>"
    exit 2
fi

quote ()
{
    echo \'${1//\'/\'\\\'\'}\'
}

ssh "$remote_addr" "sh -c $(quote "echo $(quote "$file_content") > $(quote "$file_name")")"


но 95% bash-пейсаталей так и невдомёк понять зачем в этом примере используется функция quote()

...и это печально :-( :-( :-(

однако использование экранизации -- позвалило использовтаь наш скрипт даже как:

$ ./xxx root@192.168.0.197 "/root/тестовый файл" "тестовый текст в файле"

заметте что я даже смог использовать пробелы в имени и содержимом файлах!! это ничего не испортит теперь уже нам!!!

...а вы там боитесь про какието <#> (ну не лично Вы конешно :))

# p.s.: не не.. я понимаю что создать удалённый файл на сервере можно и с помошью команды scp... но здесь я просто рассмотрел пример "что такое экранизация"

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

54. "Fedora на пути к изменению наименования сетевых интерфейсов"  +/
Сообщение от PereresusNeVlezaetBuggyemail (ok), 25-Янв-11, 06:13 
>> Экейпить будут :)
> 95% людей кто пишет bash-скрипты (у себя в собственном линуксе на коленке)
> -- даже не знают что такое "экранизация" в bash :-D

Не знают. И поэтому-то использование "#" череповато — обычный, безобидный пользователь какой-нибудь убунты пострадает из-за криворукости программиста. Провоцирование проблем в данном случае не оправданно.

> # p.s.: не не.. я понимаю что создать удалённый файл на сервере
> можно и с помошью команды scp... но здесь я просто рассмотрел
> пример "что такое экранизация"

Как раз иногда приходится использовать ssh, так как scp не умеет копировать из стандартного ввода. То есть нормально сливать вывод программы через SSH можно только таким образом; можно, конечно, ещё извращённо, через перенаправление сокетов, но давайте всё же без маразма. :-)

Ответить | Правка | Наверх | Cообщить модератору

89. "Fedora на пути к изменению наименования сетевых интерфейсов"  +2 +/
Сообщение от serg (??), 25-Янв-11, 11:55 
экранизация
http://ru.wikipedia.org/wiki/%D0%AD%D0%B...

Экранирование символов
http://ru.wikipedia.org/wiki/%D0%AD%D0%B...

Зачем кичиться познаниями в баше, если термины правильно употреблять не можешь?
в приведенном фрагменте когда, кирилический текст смотрится забавно.. что делать если другая локаль? Какже использование фич? gettext? где переводы?

большинство людей используют скрипты как средство автоматизации своей работы. на мой взгляд, нет смысла adhoc скрипт тестировать на все возможные "засады".

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

123. "Fedora на пути к изменению наименования сетевых интерфейсов"  +1 +/
Сообщение от незарегистрированный аноним (?), 25-Янв-11, 21:46 

> надеюсь другие придурни не забыли что ВСЕ СТРОКОВЫЕ АРГУМЕНТЫ в bash пишутся
> в ковычках?

В "ковычках" только у вас что-то пишется. А в кавычках пишутся те строковые аргументы,
которые в этих самых кавычках нуждаются.

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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