Пара вопросов по bash-скрипт

Изображение пользователя 9nobog.

1. Как сделать в конце проверку на доступность какого-либо сервера, и если он не доступен(сеть настроена не правильно), то повторить скрипт.
2. Можно ли как-то идентифицировать сетевые карты, к которым подключен кабель, например есть eth0 eth1 , кабель подключен к eth1 и именно на него надо настраивать. Или проще сделать настройку по eth0 eth1 eth2 eth3, и закончить скрипт после того как инет настроится?
Короче надо отладку двух ошибок:

  • неверный ввод логин пароля
  • настраивается не та карта

#!/bin/bash
echo 'Введите логин'
read login
echo 'Введите пароль'
read passwd
echo "ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=\""$login"\"
password=\""$passwd"\"
}" > /etc/wpa_supplicant.conf
echo "auto eth0
iface eth0 inet dhcp
  wpa-driver wired
  wpa-conf /etc/wpa_supplicant.conf" > /etc/network/interfaces
sleep 3
ifdown eth0
sleep 3
ifup eth0
x-www-browser http://kirovnet.ru
exit 0

0
Voyageur - 11 Март, 2010 - 15:34
Изображение пользователя Voyageur.

Проверить доступность можно обычным пингом, например на яндекс или гугл. Если сеть не поднднята, он Вам ответит в стиле "Host unreachable."
Кстати, а разница в ifconfig при включенном и отключенном кабеле есть?

0
9nobog - 12 Март, 2010 - 21:32
Изображение пользователя 9nobog.

я просил практику, понятно что пингом можно проверить :) Вот скрипт, у кого в сети авторизация через MD5, будет полезен. Тока ссылочки поменяйте.
#!/bin/bash

for i in 1 2
do
echo -n 'Введите логин';
if [ $i = 2 ]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read login
echo -n 'Введите пароль';
if [ $i = 2 ]; then
echo '. Возможно, первый раз он был введен неправильно:';
else
echo ':';
fi;
read passwd

for i in `seq 0 3`;
do
echo "ap_scan=0
network={
key_mgmt=IEEE8021X
eap=MD5
identity=\""$login"\"
password=\""$passwd"\"
}" > /etc/wpa_supplicant.conf
echo "auto eth$n
iface eth$n inet dhcp
  wpa-driver wired
  wpa-conf /etc/wpa_supplicant.conf" > /etc/network/interfaces
sleep 3
ifdown eth$n
sleep 3
ifup eth$n
ping -c 1 -w 5 kirovnet.ru &>/dev/null
if [ $? -eq 0 ]; then
x-www-browser kirovnet.ru;
exit 0;
fi;
done;
done;

0
dyug - 13 Март, 2010 - 11:12

первое - к какой карте карте подключен кабель
mii-tool с удовольствием вам сообщит, что и на какой интерфейс подключено. :-)
dyug@dyug-ws:~$ sudo -s
root@dyug-ws:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok

вот так примерно...
root@роутер-2:~# mii-tool
eth0: negotiated 100baseTx-FD flow-control, link ok
eth1: negotiated 100baseTx-FD, link ok

вот так отвечает на двух поднятых интерфейсах.

а вот так на 4 :-)
root@vpn-office:~# mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD flow-control, link ok
eth2: negotiated 100baseTx-FD flow-control, link ok
eth3: negotiated 100baseTx-FD, link ok

блин, у меня таки все карты уже заняты... :-(

Да, чтоб было понятно.
1 - кубунту 9.10
2 - дебиан 4
3 - слакварь достаточно древняя, но стоящая внутри сети. :-)

0
9nobog - 13 Март, 2010 - 19:08
Изображение пользователя 9nobog.

хм) ну так-то можно в баше вывести эту строчку, и считать инфу до <:>, но как-то стремно) я думаю перебирать нормально.

0
dyug - 15 Март, 2010 - 16:40

mii-tool eth0 |grep "link ok"
?

0
balamutick - 16 Март, 2010 - 12:02
Изображение пользователя balamutick.

Люди я с вас фигею, откуда вы такие умные, дайте этих man -ов тоже почитать. Я тоже так хочу.

0
dyug - 16 Март, 2010 - 12:09

Ну я их читаю уже лет 10 где то...
с момента постановки слаквари 3.4 в 98 году... :-)
что то в голове и отложилось...
Что за это время не отложилось в голове - так это как пользоваться емаксом.
причем намертво. :-(

по башу, как ни странно, но я рекомендую почитать, и периодически перечитывать ABS guide
http://tldp.org/LDP/abs/html/

Мне, по крайней мере помогает. :-)

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры