LINUX.ORG.RU
решено ФорумAdmin

smstools и чтение скриптов

 , ,


1

1

доброго дня всем.

имеется система уведомления по смс с кучей косяков

конфиг smstools:

# Example smsd.conf. Read the manual for a description
user = smstools
group = smstools
devices = GSM1
logfile = /var/log/smsd/smsd.log
failed=/var/spool/sms/sent
loglevel = 7
receive_before_send = no
status_signal_quality = yes
stats_interval = 60
status_interval = 60
infofile = /var/run/smsd/smsd.working
pidfile = /var/run/smsd/smsd.pid

[GSM1]
device = /dev/ttyUSB0
rtscts = no
incoming = no ящие сообщения
incoming = high
memory_start = 0
check_memory_method=31
проблема в том, что периодически все это добро вылетает. Юсб модем работает сутки (если верить нагиосу) потом вылетает.

спасает:

service smsd stop
echo suspend > /sys/bus/usb/devices/1-1.4/power/level
echo on > /sys/bus/usb/devices/1-1.4/power/level
service smsd start
иногда раза со второго, но начинает более менее работать.

Проблема в том, что периодически отваливается вся эта система с модемом. спасает только вот такое вот «передергивание». Куда тут копать?

Куда тут копать?

железо или cron, что вам проще и дешевле будет

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

работало это железо неделями точно, раньше отваливалось намного реже. Проблема явно не в нем, к сожалению..

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

Если приходится передергивать питание УСБ, то железо. Система у тебя ведь не менялась, апдейты не накатывались (ты ведь написал бы об этом), так что остается только железо.

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

все логично, не писал, забыл что тут нет телепатов. Железо с тех времен не менялось.

из текущих логов:

 2013-08-19 13:26:06,7, GSM1: -> AT
2013-08-19 13:26:06,7, GSM1: write_to_modem: device busy, waiting
lsof | grep /dev/ttyUSB0
smsd      42201  smstools    4u      CHR              188,0       0t0   55017984 /dev/ttyUSB0
Rockon ()
Ответ на: комментарий от Rockon

тут получается, что смстулс запускается и блокирует модем для себя же.

Rockon ()
Ответ на: комментарий от sdio

сходил, переткнул эту проклятую железку. Но проблему это не решает.

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

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

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

echo suspend > /sys/bus/usb/devices/1-1.4/power/level
echo on > /sys/bus/usb/devices/1-1.4/power/level
может привести к подвисанию модема, если в этот момент поступила какая-то команда на этот модем.

для информации:

Bus 001 Device 039: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2
такое видно даже, когда я программно отправляю порт модема в suspend - модем тупо виснет.

неужели ни у кого не было опыта с такими проблемами?

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

дядьки, я запутался:

for f in `ls /sys/bus/usb/devices/*/product`; do echo -e "$f\t`cat $f`"; done
/sys/bus/usb/devices/1-1.4/product      HUAWEI Mobile

далее

echo suspend > /sys/bus/usb/devices/1-1.4/power/level 
и на сладкое lsusb(выходил покурить, времени на выключение юсб модема было предостаточно)
Bus 001 Device 039: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

как такое вообще может быть? раньше такое проделывал с ним - в списке lsusb модем пропадал.. Соответственно переподключался он потом нормально

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

у меня модем Huawei E1550, Centos5.X.
Для рассылки СМС использую пакет gammu (wammu). Модем периодически зависает - раз в полгода - год. Сервер брендовый, софт менять ни к чему.
Проблему решил скриптом который ловит в логах каждую минуту аварийные соообщения gammu-smsd. Далее скрипт тупо останавливает gammu-smsd, выгружает модули ядра, грузит их обратно в ядро, проверяет наличие устройства управления модемом /dev/ttyUSB0 и запускает gammu-smsd.
Раньше приходилось голову ломать,задницу отрывать и ходить в серверную. Но это мелочи - бывало через несколько дней только обнаруживал что модем то нефурычит. А задачи важные на него возложены
Мочему глючит - даже не стал разбираться.

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 3)
Ответ на: комментарий от Vlad-76

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

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

что касается передергивания физического (релюшка по сути тоже самое), то этого оказывалось мало. Потому как устройства созданные драйвером в системе не исчезали, а появлялись новые. А т.к. в конфиге gammu-smsd жестко задано устройство, то и возникали непонятки. Только выгрузка загрузка драйвера помогла - т.к. порт управления модемом появлялся на прежнем месте. Да и вообще завел второй модем. Основной проверяю периодически на коннект к сети оператора.

Vlad-76 ★★★ ()
Последнее исправление: Vlad-76 (всего исправлений: 1)
Ответ на: комментарий от Rockon

Такой рабочий вариант скрипта. Могут быть некоторые не точности или лишняя информация в комментариях да и в строках скрипта. С дирректориями разберитесь по тексту какие нужны создайте
http://pastebin.com/LX8E3i4F

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

кстати, а почему гамму, а не смс тулс? в чем преимущество?

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

про smstools ничего не знал до того как набрел на gammu.

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

решение проблем

Я тогда забыл отписать по поводу решения проблемы.

я сначала заново перенастроил модем

 at^hspa=0

далее модем определился как

Bus 001 Device 003: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem

это нормально!

сам модем в моем случае был

ls /dev/ttyUSB*
/dev/ttyUSB0  /dev/ttyUSB2  /dev/ttyUSB3
usb0 - он переопределился с usb1

далее дело техники. Основная моя ошибка была в том, что я не останавливал службу smsd - которая держала соединение с модемом, из-за чего при включении minicom модем безнадежно вис.

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