LINUX.ORG.RU

ubuntu: перезапуск сети после сбоя


0

1

Ubuntu Server 10.04 крутится на компе с сетевухой Nvida (встроена в чипсет). Иногда бывает, что драйвер сетевухи падает (появляются соответствующие записи в syslog), но бывает это достаточно редко. Плохо, если это случается, когда я не дома и не могу перезапустить комп. При подобном сбое комп перестает пинговаться, а никаким другим способом перезапустить его удаленно я не могу.

Каким образом можно отследить сбой и перезапустить сетевую подсистему (или компьютер полностью)?


Ответ на: комментарий от anonymous

Нахрена это делать по крону если можно повесить обработчик валящегося в syslog?

Ramen ★★★★
()

Basile> Иногда бывает, что драйвер сетевухи падает

Поставить нормальную сетевуху.

athost ★★★★★
()
Ответ на: комментарий от Ramen

>А не лучше ли как-нибудь в rsyslog.conf, например, обработчик повесить?

Ну можно и так. Вариантов много, это же юникс-вэй!

Zhbert ★★★★★
()
Ответ на: комментарий от Dobriy_i_Prostoy

>По cron-у:

if ! ping -c 1 адрес_ближайшего_маршрутизатора ; then reboot ; fi

Какой знатный костыль.
ТС, не делай так. :-) Или делай обработчик события отвала сетевухи, или попытайся пофиксить саму проблему.

Ramen ★★★★
()
Ответ на: комментарий от Ramen

Какой знатный костыль.

Всё, что предлагает топикастер, костыль априори.

Правильным решением в данной ситуации может быть только замена сетевухи или написание к драйверу пача, исправляющего проблему

Dobriy_i_Prostoy
()
Ответ на: комментарий от athost

Проблема скорее всего не в драйвере, а в перегреве (может и битый чипсет). Как реализована система охлаждения в Revo R3600, мне не понравилось: даже на полных оборотах кулера радиатор горячий, а заменить систему не на что. Плохо что считать температуру чипсета нельзя: lm-sensors может считать лишь температуру процессора; температуру чипсета может считать только проприетарный драйвер видеокарты (видюха встроенная), который за ненадобностью не установлен.

Что-то поделие Acer на ION меня не впечатлило, пока присматриваюсь к платформе Intel NM10

Basile
() автор топика
Ответ на: комментарий от Dobriy_i_Prostoy

Ну, ребутиться не обязательно. В принципе достаточно выполнить:

ifconfig eth0 down
rmmod forcedeth
modprobe forcedeth
ifconfig eth0 up
/etc/init.d/networking restart

Basile
() автор топика

в syslog валится такое:

Nov  3 11:09:25 server kernel: [162816.292531] eth0: MAC in recoverable error state
Nov  3 11:09:33 server kernel: [162824.040029] ------------[ cut here ]------------
Nov  3 11:09:33 server kernel: [162824.040058] WARNING: at /build/buildd/linux-2.6.32/net/sched/sch_generic.c:261 dev_watchdog+0x262/0x270()
Nov  3 11:09:33 server kernel: [162824.040069] Hardware name: Aspire R3600
Nov  3 11:09:33 server kernel: [162824.040076] NETDEV WATCHDOG: eth0 (forcedeth): transmit queue 0 timed out
Nov  3 11:09:33 server kernel: [162824.040084] Modules linked in: snd_hda_codec_nvhdmi snd_hda_codec_realtek fbcon tileblit font bitblit softcursor vga16fb vgastate snd_hda_intel snd_hda_codec nouveau snd_hwdep ttm drm_kms_helper led_class snd_pcm usbhid hid usb_storage snd_timer coretemp psmouse serio_raw drm i2c_algo_bit snd soundcore adt7475 forcedeth i2c_nforce2 shpchp snd_page_alloc lp parport ahci
Nov  3 11:09:33 server kernel: [162824.040162] Pid: 0, comm: swapper Not tainted 2.6.32-25-server #45-Ubuntu
Nov  3 11:09:33 server kernel: [162824.040168] Call Trace:
Nov  3 11:09:33 server kernel: [162824.040173]  <IRQ>  [<ffffffff81065f3b>] warn_slowpath_common+0x7b/0xc0
Nov  3 11:09:33 server kernel: [162824.040194]  [<ffffffff81065fe1>] warn_slowpath_fmt+0x41/0x50
Nov  3 11:09:33 server kernel: [162824.040204]  [<ffffffff8148c492>] dev_watchdog+0x262/0x270
Nov  3 11:09:33 server kernel: [162824.040215]  [<ffffffff81019103>] ? native_sched_clock+0x13/0x60
Nov  3 11:09:33 server kernel: [162824.040225]  [<ffffffff8108a225>] ? sched_clock_local+0x25/0x90
Nov  3 11:09:33 server kernel: [162824.040234]  [<ffffffff8148c230>] ? dev_watchdog+0x0/0x270
Nov  3 11:09:33 server kernel: [162824.040243]  [<ffffffff8107667b>] run_timer_softirq+0x19b/0x340
Nov  3 11:09:33 server kernel: [162824.040253]  [<ffffffff810938e0>] ? tick_sched_timer+0x0/0xc0
Nov  3 11:09:33 server kernel: [162824.040263]  [<ffffffff8108e543>] ? ktime_get+0x63/0xe0
Nov  3 11:09:33 server kernel: [162824.040272]  [<ffffffff8106d477>] __do_softirq+0xb7/0x1e0
Nov  3 11:09:33 server kernel: [162824.040281]  [<ffffffff810934ca>] ? tick_program_event+0x2a/0x30
Nov  3 11:09:33 server kernel: [162824.040290]  [<ffffffff810132ec>] call_softirq+0x1c/0x30
Nov  3 11:09:33 server kernel: [162824.040297]  [<ffffffff81014cb5>] do_softirq+0x65/0xa0
Nov  3 11:09:33 server kernel: [162824.040305]  [<ffffffff8106d315>] irq_exit+0x85/0x90
Nov  3 11:09:33 server kernel: [162824.040316]  [<ffffffff8155f391>] smp_apic_timer_interrupt+0x71/0x9c
Nov  3 11:09:33 server kernel: [162824.040324]  [<ffffffff81012cb3>] apic_timer_interrupt+0x13/0x20
Nov  3 11:09:33 server kernel: [162824.040329]  <EOI>  [<ffffffff8101a571>] ? mwait_idle+0x71/0xd0
Nov  3 11:09:33 server kernel: [162824.040345]  [<ffffffff8155cf2a>] ? atomic_notifier_call_chain+0x1a/0x20
Nov  3 11:09:33 server kernel: [162824.040356]  [<ffffffff81010e63>] ? cpu_idle+0xb3/0x110
Nov  3 11:09:33 server kernel: [162824.040365]  [<ffffffff81541c8b>] ? rest_init+0x6b/0x80
Nov  3 11:09:33 server kernel: [162824.040376]  [<ffffffff8187edcc>] ? start_kernel+0x368/0x371
Nov  3 11:09:33 server kernel: [162824.040384]  [<ffffffff8187e33a>] ? x86_64_start_reservations+0x125/0x129
Nov  3 11:09:33 server kernel: [162824.040393]  [<ffffffff8187e438>] ? x86_64_start_kernel+0xfa/0x109
Nov  3 11:09:33 server kernel: [162824.040400] ---[ end trace 24fed44098ba9dda ]---
Nov  3 11:09:33 server kernel: [162824.040407] eth0: Got tx_timeout. irq: 00000016
Nov  3 11:09:33 server kernel: [162824.040411] eth0: Ring at 7b2e4000
Nov  3 11:09:33 server kernel: [162824.040415] eth0: Dumping tx registers
<вырезано>
Nov  3 11:09:33 server kernel: [162824.041203] eth0: Dumping tx ring
<вырезано>
Nov  3 11:09:43 server kernel: [162834.040028] eth0: Got tx_timeout. irq: 00000016
<и все по новой>

И как это привязать обработчик к событию в rsyslog/прогрепать?

Basile
() автор топика
Ответ на: комментарий от athost

Нет, там что-то переделали с forcedeth?

Basile
() автор топика
Ответ на: комментарий от Basile

А хрен знает, никогда не пробовал. Полагаю, можно нужные данный отправлять в обработчик (вместо файла) через пайп.

Ramen ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.