Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2013, 18:11   #1
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию ubuntu, проверка интернета

В общем, настроил я неким образом xl2tpd на ubuntu. Вроде всё работает и хорошо. Но есть один минус: после разрыва связи коннект не восстанавливается, плюс соединение происходит ровно через раз (как будто в демоне жёстко прописано соединяться через раз), перезагружаешь компьютер интернета нет, перезагружаешь ещё раз - интернет появляется. Проверил уже пару сотен раз, жёстко через одну перезагрузку.

В общем, надо запилить костыль: скрипт будет в автозапуске. Будет проверять соединение с интернетом, если его нет или оно пропало, то делает перезагрузку. Помогите пожалуйста со скриптом.
rpy3uH вне форума Ответить с цитированием
Старый 23.07.2013, 19:10   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Насколько я понял, xl2tpd делает ppp соединение?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 24.07.2013, 15:01   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
Насколько я понял, xl2tpd делает ppp соединение?
Да.

Я уже думал что надо как-то проверять наличие интерфейса ppp0 и по нему судить о наличии интернета.
rpy3uH вне форума Ответить с цитированием
Старый 24.07.2013, 16:09   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

если в двух словах:
Код:
cat /proc/net/dev
Если поточнее - надо подумать капельку... попозже отпишусь.

upd.

Код:
#!/bin/sh

f="/proc/net/dev"
#прога grep - парсит что-либо. с параметром -c она выводит кол-во совпадений. 
#В нашем случае она выводит нам количество подстрок ppp в файле /proc/net/dev
r=$(grep -c "ppp" $f)  
if [ "$r" -gt "0" ]
then
	echo "we have $r Point to Point connections"
else
	echo "We have no any connections"
	reboot
fi
Вообще, перезагружать компьютер по такому пустяку не хорошо, правильнее будет перезапустить демон. (обычно это делается командой %deamonname% restart)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 24.07.2013 в 16:26.
ROD вне форума Ответить с цитированием
Старый 24.07.2013, 18:25   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
Вообще, перезагружать компьютер по такому пустяку не хорошо, правильнее будет перезапустить демон. (обычно это делается командой %deamonname% restart)
Нет, там как раз нало полный ребут делать. Рестарт демона не помогает
rpy3uH вне форума Ответить с цитированием
Старый 24.07.2013, 18:30   #6
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
Нет, там как раз нало полный ребут делать. Рестарт демона не помогает
Хм... может быть виноват не xl2tpd, а что-то еще. Посмотрите, что пишется в файле /etc/ppp/connection-errors
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 04.08.2013, 15:06   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

А теперь ледующий вопрос: если провода нет, значит нет интернета, значит и не будет ppp0, следовательно система из-за этого скрипта будет бесконечно перезагружаться. Что делать?
rpy3uH вне форума Ответить с цитированием
Старый 04.08.2013, 18:32   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Проверить наличие провода.

Я так понимаю, что выход в сеть (реальный) у вас через какой-нибудь Ethernet?

upd.

Попробуйте утилиту ethtool.


Код:
ethtool eth0
Особое внимание обращу на то, что некоторую инфу она может получить только будучи запущеной суперпользователем (она сама скажет, что она не может прочитать).

Среди ее вывода есть такое:

Цитата:
Link detected: yes
И, если выдернуть провод:

Цитата:
Link detected: no


Код:
#!/bin/sh

#Проверка наличия привелегий суперпользователя
#В противном случае (лично у меня) ethtool не может определить наличие соединения
#В принцыпе, для ребута вы тоже должны быть суперпользователем
if [ $(id -u) != "0" ]
then
	echo "You must be the superuser to run this script."
	exit 1
fi

f="/proc/net/dev"
#прога grep - парсит что-либо. с параметром -c она выводит кол-во совпадений. 
#В нашем случае она выводит нам количество подстрок ppp в файле /proc/net/dev
r=$(grep -c "ppp" $f)  
if [ "$r" -gt "0" ]
then
	echo "we have $r Point to Point connections"
	#Собственно сама проверка соединения
	r=$(ethtool eth0 | grep "Link detected" | awk '{print $3}')
	if [ "$r" == "yes" ]
	then
		echo "Ethernet connected"
		reboot
	else
		echo "Ethernet not connected"
		exit 0
	fi

else
	echo "We have no any connections"
	reboot
fi
Вообще, было бы очень хорошо о наших действиях в лог писать, но я не помню как это делать.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 05.08.2013 в 08:24.
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ubuntu, Ubuntu server на виртуалке - нет доступа извне yaapelsinko Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 3 14.11.2012 09:36
Проверка наличия интернета через прокси сервер. Crunkordie Общие вопросы Delphi 0 20.07.2011 11:35
Обновление Ubuntu 10.04 на Ubuntu 10.10 Яр|/||< (^_^) Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 4 06.11.2010 15:05
Создание локальной и интернет сети BT-BT UBUNTU 9.10-UBUNTU 9.10 Alex Cones Компьютерное железо 4 14.03.2010 15:26