>Огромное спасибо! Буду завтра пробовать, т.к. сейчас уже у нас ночь, больно
>спать хочется =)...
>
>О результатах сообщу. Итак, отписываюсь. Для чего все это было - есть мультикассы, связь которых в свою очередь постороена на GSM модемах, которые часто подвисают. В итоге хотелось как-то(минимальными затратами) сделать какой-то примитивный перезапуск этих самых модемов.
Вот собственно и сам скрипт:
#!/bin/bash
while [ 1 ]
do
echo ""
echo "--------------------------------------------------------"
echo "start test. ping server..."
ping -i4 -c5 -q -w30 <IP> &>/dev/null
rez=$?
if [ $rez != 0 ]; then
echo "modem status = error"
echo "down pptp interface"
ifdown pptp0
sleep 2
echo "restart modem..."
dd if=/dev/zero of=/dev/ttyS{0,1,2,3...} bs=1 count=10240
echo "wait 20 sec before up pptp..."
sleep 20
echo "up pptp interface..."
ifup pptp0
else echo "modem status = ok"
fi
echo "wait 60 sec before next test..."
sleep 60
done
Скрипт в тестовом режиме, поэтому я решил все сделать в цикле while. В дальнейшем цикл уберу и засуну все в cron.
Схема постороена на транзисторе 30N03-30L, который был выпаян из ближайшего блока питания древнего ноутбука и реле на 12V.
на ногу G через резистор в 1.6 кОм подан сигнал TxD.
на ногу D припаял на катушку реле, на второй контакт катушки подал +12V от БП компьютера.
нога S замыкается с GND порта RS232 и "-" БП(в принципе должно хватить только "минуса" от БП или COM порта, но так надежнее).
Контакты реле использовать по назначению... Да, не забудьте припаять обратный диод на катушку реле, дабы самоиндукция не пробила транзистор (хотя некоторые содержат свой собственный диод внутри, но как показывает практика он не выдерживает).
В скрипте так же не забудьте заменить "<IP>" и указать номер порта COM.
Это все 100% работает, осталось только установить.
Буду признателен если меня поправят =)
Отдельная благодарность rmf.