Старый 22.06.2011, 19:16   #1   
per fumum
 
Аватар для Hip-Hop
 
Сообщений: 4,151
Регистрация: 27.08.2007
Возраст: 36

Hip-Hop вне форума Не в сети
SMS-гейт.

Столкнулся с проблемой. Редактировал по ssh таблицу маршрутизации и потерял связь с машиной. Ну, удалил маршрут нужный. Нужно было вернуть всё на место. Давно знал эту замечательную статью - http://xgu.ru/wiki/Gnokii

Сделал тоже самое, но используя gammu-smsd.

Получилось так:

Код:
#!/bin/sh
inbox=/var/spool/gammu/inbox
sender=$inbox/*номер_отправителя*
smsgate()
{
if
[ -e $sender ]
then
cat $sender 2> /dev/dull | sh -s
rm $sender
fi
}
while :
do
smsgate
sleep 1
done
И могу чуть-чуть пояснить. gammud хранит входящие sms в $inbox. Когда в эту папку попадает sms-ка от отправителя с определённым в $sender номером, то её тело попадает к интерпретатору команд. (команда\команды выполняются). Sms-ка удаляется. Тело этой работы описано в функции. Функция вызывается в бесконечном цикле с определённым интервалом.

Imho, вещица очень полезная. Её можно использовать много как. И как резервный канал не использующий tcp\ip.

Последний раз редактировалось Hip-Hop; 22.06.2011 в 19:46.
  Ответить с цитированием
Старый 22.06.2011, 20:10   #2   
per fumum
 
Аватар для Hip-Hop
 
Сообщений: 4,151
Регистрация: 27.08.2007
Возраст: 36

Hip-Hop вне форума Не в сети
Давайте добавим простую авторизацию. (телефоны с которых разрешено отправлять команды в интерпретатор)

Это будет так:


Код:
#!/bin/sh

inbox=/var/spool/gammu/inbox
smsgate()
{
for sender in `cat $inbox/sender.smsgate`
do
if
[ -e $sender ]
then
cat $sender 2> /dev/dull | sh -s
rm $sender
fi
done
}
while :
do
smsgate
sleep 1
done
В файле sender.smsgate перечисляем телефоны в формате - *телефон*.

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

это лучше сделать через aliases в .bashrc, imho, но тут есть ряд подводных камней. Или через оператор case в самом скрипте, но это уже сложней.

'проверять команду на вхождение в заранее предопределённое допустимое множество (исключающее потенциально опасные команды);'

Это не нужно, imho.

'проверять телефон отправителя на вхождение в предопределённый список авторизованных пользователей шлюза.'

В список они уже входят, но можно подпридумать ещё. Кстати, у многих щя sudo работает, да.

Последний раз редактировалось Hip-Hop; 22.06.2011 в 23:59.
  Ответить с цитированием
Старый 23.06.2011, 18:21   #3   
Форумец
 
Аватар для Xenon
 
Сообщений: 68,040
Регистрация: 02.10.2007
Возраст: 35
Записей в дневнике: 228

Xenon вне форума Не в сети
Hip-Hop, 21 год, а такой ерундой занимаешься. Может, тебе работу найти?
  Ответить с цитированием
Старый 23.06.2011, 21:02   #4   
per fumum
 
Аватар для Hip-Hop
 
Сообщений: 4,151
Регистрация: 27.08.2007
Возраст: 36

Hip-Hop вне форума Не в сети
Xenon, Оказывается занимаемся изобретением велосипедов. Посмотрел тут http://wammu.eu/docs/manual/smsd/run.html
  Ответить с цитированием
Старый 24.06.2011, 18:19   #5   
Форумец
 
Аватар для Xenon
 
Сообщений: 68,040
Регистрация: 02.10.2007
Возраст: 35
Записей в дневнике: 228

Xenon вне форума Не в сети
Hip-Hop, 21 год, а такой ерундой занимаешься. Может, тебе работу найти?
  Ответить с цитированием
Старый 28.06.2011, 18:00   #6   
Флудер
 
Аватар для Nosferato
 
Сообщений: 621
Регистрация: 13.08.2003
Возраст: 41

Nosferato вне форума Не в сети
Проще использовать крон.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind