Страница 1 из 1
Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 11:12:15
kos_fist
Добрый день!
У меня возник следующий трабл...
На сервере по непонятной причине залипает интерфейс который смотрит в локальную сеть. Сервер под управлением FreeBSD 5.4. После запуска команды ifconfig em0 down up все подымается. Вопрос: можно ли как то автоматизировать этот процесс? На сайте лисяры нашел следующий скрипт для похожей задачи но с vtun, пытался его переделать...помогите пожалуйста, замучался уже я с ним...
Воть что у меня получился за скрипт:
Код: Выделить всё
#!/bin/sh
# Скрипт перезапуска интерфейса em0, на случай падений
# переменные
ping="/sbin/ping"
grep="/usr/bin/grep"
wc="/usr/bin/wc"
if [ `${ping} -c 4 192.168.0.0 | ${grep} "Host is down" | ${wc} -l` -lt 1 ]
then
ifconfig em0 down up #> /dev/null 2>&1
else
fi
exit
Буду очень благодарен за помощь!
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 11:16:02
D_CPU350
Можно поинтересоваться?
как залипает?
есть ли какие-нибудь изменения в sysctl?
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 11:23:31
kos_fist
Та вообщем то он падает ни с того ни с сего. Просто в один момент локальная сеть перестает видеть шлюз (em0) не отвечает на пинги, так же как и он с своей стороны не видит сеть, такое ощущение что сетевушку отключили, но при выводе ifconfig состояние пишет active
В sysctl если честно даже незнаю, я его конфиг не трогал, как то не приходилось...
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 11:42:38
kos_fist
D_CPU350 писал(а):Можно поинтересоваться?
как залипает?
есть ли какие-нибудь изменения в sysctl?
Меня в принципе интересует сам скрипт, у меня есть подозрение что это падения сетвушки происходят на апаратном уровне.
Поэтому хочу написать скрипт для автоматизации процедуры перезапуска интерфейса...
Я так понимаю, что в скрипте ошибка в этой строке
Код: Выделить всё
if [ `${ping} -c 4 192.168.0.15 | ${grep} "Host is down" | ${wc} -l` -lt 1 ]
а именно -lt 1 Не пойму как правильно задать параметр если Host is down больше 1, то выполнить ifconfig em0 down up
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 11:53:28
D_CPU350
Код: Выделить всё
#!/bin/sh
ping -c 4 -t 5 192.168.0.0 || ifconfig em0 down up
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:04:05
kos_fist
D_CPU350 писал(а):Код: Выделить всё
#!/bin/sh
ping -c 4 -t 5 192.168.0.0 || ifconfig em0 down up
а как же условие? после чего он должен перезапускаться?
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:10:49
D_CPU350
в конце работы команда ping выдает код завершения - 0 если все ок, не ноль, если есть ошибки
|| - логическое "или"
Передергивать интерфейс - неправильный подход.
Нужно все-таки определить аппаратная проблема или нет (заменить сетевуху)
У меня была аналогичная проблема, оказалось не в железе
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:15:37
kos_fist
D_CPU350 писал(а):в конце работы команда ping выдает код завершения - 0 если все ок, не ноль, если есть ошибки
|| - логическое "или"
Передергивать интерфейс - неправильный подход.
Нужно все-таки определить аппаратная проблема или нет (заменить сетевуху)
У меня была аналогичная проблема, оказалось не в железе
Ну заменить я ее пока и не могу, по причине лагов днк директора
Поэтому и взялся за скрипт... А в чем у тебя была проблемма тогда?
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:23:53
D_CPU350
дооптимизировал через sysctl. К сожалению не смог выяснить какая конкретно опция убивала сеть, т.к. просто все снес оттуда и прописал только нужное.
Код: Выделить всё
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
security.bsd.hardlink_check_uid=1
security.bsd.hardlink_check_gid=1
#kern.ipc.somaxconn=1024
#kern.ipc.maxsockbuf=16777216
kern.coredump=0
#net.link.ether.inet.max_age=1200
#net.inet.icmp.icmplim=50
#net.inet.icmp.drop_redirect=1
#net.inet.icmp.log_redirect=1
#net.inet.icmp.bmcastecho=0
#net.inet.icmp.maskrepl=0
#net.inet.ip.redirect=0
#net.inet.ip.sourceroute=0
#net.inet.ip.accept_sourceroute=0
#net.inet.udp.blackhole=1
#net.inet.tcp.blackhole=2
#net.inet.tcp.nolocaltimewait=1
#net.inet.tcp.msl=7500
net.inet.tcp.delayed_ack=0
net.inet.tcp.drop_synfin=1
net.inet.tcp.rfc1323=1
#net.inet.tcp.sendspace=1048576
#net.inet.tcp.recvspace=1048576
security.bsd.hardlink_check_uid=1
security.bsd.hardlink_check_gid=0
одна из закоментированных опций убивала
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:32:04
kos_fist
Так дело в том что раньше такого небыло, и конфиг sysctl никто не трогал...Ладно, я только что прописал конфиг в крон, будем смотреть, спасибо огромное!
Теперь хоть знаю если что куда копать
Re: Скрипт перезапуска интерфейса.
Добавлено: 2009-05-06 12:33:41
D_CPU350
ну это у меня было, у Вас может быть что угодно;)))
Re: Скрипт перезапуска интерфейса.
Добавлено: 2012-02-02 19:45:41
5chme1
У меня такая же фигня. интерфейс падает ни с того ни с сего. FreeBSD 8.2
При этом стабильно работало несколько месяцев, конфиги никто не трогал. Уже и не знаю, что делать...
Re: Скрипт перезапуска интерфейса.
Добавлено: 2012-02-02 20:42:46
5chme1
только через некоторое время в консоли появляется такое сообщение:
named[767]: could not listen on UDP socket: permission denied
named[767]: creating IPv4 interface igb0 failed; interface ignored
И все, пинги с него не идут, хотя он сам пингуется 0_о
UPD: Нашел подлеца, прописавшего статический IP. Проблема решена