Перейти до

системные программисты есть?


Рекомендованные сообщения

ОС: FreeBSD 6.2

Задача: сваять программку, которая по запуску поднимала бы какую-нить ногу LPT-порта в высокий уровень и спустя минуту дропала обратно и завершалась.

Это нужно для аппаратной перезагрузки железяки, которой свойственно время от времени зависать

 

Или может кто-то натыкался на готовое решение?

 

Помню, в студенческие годы мы подобное писали, но... заучил, сдал, забыл - сейчас не осилю :)

 

Спасибо за внимание

Ссылка на сообщение
Поделиться на других сайтах
ОС: FreeBSD 6.2

Задача: сваять программку, которая по запуску поднимала бы какую-нить ногу LPT-порта в высокий уровень и спустя минуту дропала обратно и завершалась.

Это нужно для аппаратной перезагрузки железяки, которой свойственно время от времени зависать

 

Или может кто-то натыкался на готовое решение?

 

Помню, в студенческие годы мы подобное писали, но... заучил, сдал, забыл - сейчас не осилю :)

 

Спасибо за внимание

тебе модем будать?

Ссылка на сообщение
Поделиться на других сайтах
Да, именно так. Нужно модем ребутать, когда оный зависает и по IP отвечать перестает

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

 

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

этот выход самый лучший потому как

1 все роутерные функции ложатся на сервер

2 модем невиснет - потому как виснуть нечему

3 на одну сетевую карту можно повесить пачку модемов через свитч

4 сесия рвётся раз в сутки а не при каждом зависании модема

Ссылка на сообщение
Поделиться на других сайтах

Дык это.. скрипт пинговалки я отстроил, вкрутил в него перезагрузчик через модемную вебморду..

Но за эти несколько месяцев работы выяснилось, что модем иногда умеет зависнуть так, что не отвечает его вебморда

Помогает только вырубить на минуту-две и потом опять включить

Сейчас думаю над автоматизацией процесса. Скрипт переделать - раз плюнуть, а вот чем подрыгать ножкой порта?

Электроники там два ключа, на пять минут работы с паяльником

модем - Motorola SB5100 и никаких бриджей оно не умеет

Ссылка на сообщение
Поделиться на других сайтах
еквиком такие аппаратные ребутеры делает. проще в разы! smile.gif

 

а дело не в проще а в независимости от того же серванта. его бы тоже можно ребутать. только там не пинговалка нужна а watch dog, наверное... тогда можно построить систему, в которой зависание любого не приводит к зависанию всего. перекрестный контроль!

 

Lambert, я ж говорю - сидюк юзай! :) шутка, конечно...

Ссылка на сообщение
Поделиться на других сайтах
Писал когда-то для себя такую программулину.

Лови исходники.

Спасибо! :)

Вот бы еще подсказал глубокоуважаемый автор, как сие скомпилять..

а то у меня сходу не получилось

Ссылка на сообщение
Поделиться на других сайтах

Lambert, поделился бы с общественностью схемой

 

Электроники там два ключа, на пять минут работы с паяльником

 

и инструкцией. обязательно кому-то пригодится.

Ссылка на сообщение
Поделиться на других сайтах
cc lptsend.txt -o lptsend

Спасибо, буду пробовать

Только дальше "lptsend.txt: file not recognized: File format not recognized" я пока не продвинулся :)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Если кому-то интересно - могу выложить скрипт и схему управления. Так сказать, краткий ликбез для реализации такого вот костыля.

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

Ссылка на сообщение
Поделиться на других сайтах

Хорошо. Значит, по сути дела:

 

по крону раз в пять минут запускается скрипт-чекер

*/5 * * * *	 /usr/local/etc/scripts/nevolya.sh

 

сам скрипт выглядит так:

 

#!/bin/sh
#
for host in "82.144.211.1"; do
	  /usr/local/sbin/fping -q $host
	  RV=$?
	  if [ $RV -eq 0 ]; then
	  echo "Link is OK:" `date` >>/var/log/volia.log
	  elif [ ]; then
	  else /usr/local/bin/lptsend -s -d 0 -w 65535
	  echo "Link is broken at:" `date` >>/var/log/volia.log
	  fi
done
exit

 

Управление модемом собрано на базе схемки, приведенной ниже

перерисовать свою нечем, но вратце расскажу что надо:

управляющий выход LPT-порта - STROBE, сигнальный пин №1

земля - пин №18

вместо диода на входе оптопары - гасящий резистор (у меня 1.5К, но надо подбирать под имеющуюся оптопару)

реле с нормально замкнутыми контактами, включенными в разрыв цепи питания модема

блок питания у модема - 12В, схема кормится от него же

 

Принцип работы всей лабуды прост

по крону запускается чекер, пытается пинговать заданный в скрипте айпишник

если ответ пришел - гут, выключаемся до следующего раза

если нет - запускается lptsend с параметрами, которые выставляют канал STROBE в высокий уровень примерно на минуту

схема переключает реле, питание на модем обрывается и оный отдыхает

по истечению минуты (или сколько зададите в параметрах запуска lptsend) программа завершается, выход возвращается в состояние нуля, реле отпускается - модем аппаратно перезагружен

post-4520-1235554383_thumb.gif

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...