<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1</id>
	<title>Управляем сервером посредством СМС - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1&amp;action=history"/>
	<updated>2026-04-03T22:14:00Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1&amp;diff=1919&amp;oldid=prev</id>
		<title>imported&gt;Vix в 14:04, 14 февраля 2016</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1&amp;diff=1919&amp;oldid=prev"/>
		<updated>2016-02-14T14:04:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 17:04, 14 февраля 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l279&quot;&gt;Строка 279:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 279:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://habrahabr.ru/post/114912/ взято тут...]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://habrahabr.ru/post/114912/ взято тут...]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Дополнительно (с)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''Чтобы в лог сыпался баланс и уровень сигнала, в конфиге smstools надо написать (для МТС):''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; regular_run_cmd = AT+CUSD=1,&quot;#100#&quot;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; regular_run_cmd = AT+CSQ&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; regular_run_interval = 86400&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; regular_run_logfile = /var/log/smsd_regular_run.log&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgdb4support-mediawiki-:diff::1.12:old-1918:rev-1919 --&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1&amp;diff=1918&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: «Началось все с того, что я откопал в полке с железками USB модем huaweiE1550, купленный мной прош…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%BC_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D0%9C%D0%A1&amp;diff=1918&amp;oldid=prev"/>
		<updated>2016-02-14T14:01:32Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Началось все с того, что я откопал в полке с железками USB модем huaweiE1550, купленный мной прош…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Началось все с того, что я откопал в полке с железками USB модем huaweiE1550, купленный мной прошлым летом для организации резервного канала Интернет. Проработал он тогда недолго и за ненадобностью был убран в «закрома» до лучших времен. Первое что сделал, разлочил его для работы с МТС (так уж сложилось исторически, что я предпочитаю именно этого оператора). Изначально в голову пришла идея отправки смс с предупреждениями от Nagios, вместо почты. Бегло пробежавшись по Интернетам, наткнулся на smsd демона для отправки/приемки смс-ок из пакета smstools. После прочтения документации по этому зверю, в голову пришла идея о том, что можно принимать сообщения с нужных телефонов, с командами для сервера. Так и родилась идея «Управлять сервером посредством СМС», которая может применяться для чего угодно: перезагрузить сервер, выключить его, перезапустить демона, сбросить кеш, открыть порт на фаерволе для удаленного подключения по ssh.&lt;br /&gt;
&lt;br /&gt;
Настраиваем модем&lt;br /&gt;
&lt;br /&gt;
Для начала необходимо подружить наш модем и Linux (кстати, я использую Centos 5.5). Втыкаем модем в один из свободных usb-портов. Первое, с чем приходится столкнуться, это то что модем определяется как CD-ROM, а с CD-ROM-а как известно смс-ки не отправишь и тем более не получишь. Для того чтоб это дело нам поправить, необходимо всего лишь скормить модему эту команду: AT^U2DIAG=0 (0 – только modem, 1 – modem + cd-rom, 255 – modem + cd-rom + cardreader, 256 – modem + cardreader). Если у вас есть под рукой компьютер, с установленной Windows, то открывайте HyperTerminal, подключайтесь к модему, вводите команду: AT^U2DIAG=0 и пропускайте следующий шаг.&lt;br /&gt;
&lt;br /&gt;
Итак, заставляем модем быть модемом, а не каким-то CD-ROM-ом под Linux. Для начала необходимо поставить пакеты usb_modeswitch и minicom yum  --enablerepo=rpmforge install usb_modeswitch minicom, затем создаем/правим /etc/usb-modeswitch.conf&lt;br /&gt;
 DefaultVendor = 0x12d1&lt;br /&gt;
 DefaultProduct = 0x1446&lt;br /&gt;
 MessageEndPoint = &amp;quot;0x01&amp;quot;&lt;br /&gt;
 MessageContent = &amp;quot;55534243000000000000000000000011060000000000000000000000000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
И перетыкаем модем в другой порт, необходимо подождать 5-10 секунд (необходимо чтоб модем определился как CD-ROM) и от root-а запускаем usb_modeswitch и видим примерно следующие:&lt;br /&gt;
 Looking for target devices ...&lt;br /&gt;
 No devices in target mode or class found&lt;br /&gt;
 Looking for default devices ...&lt;br /&gt;
 Found default devices (1)&lt;br /&gt;
 Accessing device 004 on bus 007 ...&lt;br /&gt;
 Using endpoints 0x01 (out) and 0x81 (in)&lt;br /&gt;
 Inquiring device details; driver will be detached ...&lt;br /&gt;
 Looking for active driver ...&lt;br /&gt;
 OK, driver found (&amp;quot;usb-storage&amp;quot;)&lt;br /&gt;
 OK, driver &amp;quot;usb-storage&amp;quot; detached&lt;br /&gt;
 &lt;br /&gt;
 SCSI inquiry data (for identification)&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Vendor String: HUAWEI&lt;br /&gt;
 Model String: Mass Storage&lt;br /&gt;
 Revision String: 2.31&lt;br /&gt;
 -------------------------&lt;br /&gt;
 &lt;br /&gt;
 USB description data (for identification)&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Manufacturer: HUAWEI Technology&lt;br /&gt;
 Product: HUAWEI Mobile&lt;br /&gt;
 Serial No.: not provided&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Setting up communication with interface 0 ...&lt;br /&gt;
 Trying to send the message to endpoint 0x01 ...&lt;br /&gt;
 OK, message successfully sent&lt;br /&gt;
 Device is gone, skipping any further commands&lt;br /&gt;
 -&amp;gt; Run lsusb to note any changes. Bye.&lt;br /&gt;
 &lt;br /&gt;
Должны появится новые устройства ttyUSB&lt;br /&gt;
 ls /dev | grep ttyUSB:&lt;br /&gt;
 ttyUSB0&lt;br /&gt;
 ttyUSB1&lt;br /&gt;
 ttyUSB2&lt;br /&gt;
&lt;br /&gt;
Запускаем minicom –s настраиваем последовательный порт на работу с /dev/ttyUSB0,&lt;br /&gt;
Выходим из настроек, запускается терминал, затем необходимо отдать команду AT^U2DIAG=0 и получить в ответ ok&lt;br /&gt;
&lt;br /&gt;
Процедура превращения модема в модем закончена, преступаем к установке/настройке smstools.&lt;br /&gt;
&lt;br /&gt;
 Smstools&lt;br /&gt;
&lt;br /&gt;
Как ни странно, в огромных репозитариях rpmforge не нашлось места такому наиполезнейшему пакету как smstools. Но не беда, на просторах Интернета и на сайте производителя её достаточно. Я нашел пакет: smstools-3.0.10-4.el5.i386.rpm и «воспользовался» им rpm –i smstools-3.0.10-4.el5.i386.rpm. Настраиваем  smstools, файл /etc/sms.conf:&lt;br /&gt;
 devices = huaweiE1550&lt;br /&gt;
 logfile = /var/log/smsd.log&lt;br /&gt;
 loglevel = 2&lt;br /&gt;
 &lt;br /&gt;
 [huaweiE1550]&lt;br /&gt;
 device = /dev/ttyUSB0&lt;br /&gt;
 baudrate = 115200&lt;br /&gt;
 rtscts = no&lt;br /&gt;
 init = at+cpms=&amp;quot;sm&amp;quot;,&amp;quot;sm&amp;quot;,&amp;quot;&amp;quot;&lt;br /&gt;
 incoming = yes&lt;br /&gt;
 incoming = high&lt;br /&gt;
&lt;br /&gt;
настройки примерно понятные, запускаем демона, service smsd start и проверяем сие чудо: smssend 9128141111 ‘test message’ (не понимает кириллицу, необходимо конвертировать в UCS-2BE, в рамках этой статьи рассматривать не буду) и ждать смс-ки на мобильник. Если заветное сообщение не пришло, ставим в конфиге loglevel = 7 и идем за бубном. У меня поднялось все с первого раза.&lt;br /&gt;
&lt;br /&gt;
 smsctrl daemon&lt;br /&gt;
&lt;br /&gt;
Итак разговаривать мы умеем, необходимо научиться слушать!&lt;br /&gt;
Если отправить смс-ку на номер симки в модеме, через некоторое время smsd создаст файл в /var/spool/sms/incoming/huaweiE1550.* примерно следующего содержания:&lt;br /&gt;
 From: 79128141111&lt;br /&gt;
 From_TOA: 91 international, ISDN/telephone&lt;br /&gt;
 From_SMSC: 79126313431&lt;br /&gt;
 Sent: 11-03-02 08:05:46&lt;br /&gt;
 Received: 11-03-02 08:08:09&lt;br /&gt;
 Subject: huaweiE1550&lt;br /&gt;
 IMSI: 2500XXXXXXXXXXX&lt;br /&gt;
 Report: no&lt;br /&gt;
 Alphabet: ISO&lt;br /&gt;
 UDH: false&lt;br /&gt;
 &lt;br /&gt;
 Test message&lt;br /&gt;
Соответственно эти файлики мы и будем проверять на наличие команд для управления сервером. Для этого два способа 1-й небольшой демон на bash-е, 2-й встроеный обработчик событий в smsd.&lt;br /&gt;
&lt;br /&gt;
1-й способ&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 # SMSCtrl&lt;br /&gt;
 # chkconfig: - 55 45&lt;br /&gt;
 # description: Sms control, Egor N. Zuskin, 2011, http://www.it2k.ru/projects/smsctrl&lt;br /&gt;
 &lt;br /&gt;
 . /etc/rc.d/init.d/functions&lt;br /&gt;
 &lt;br /&gt;
 DAEMON=smsctrl&lt;br /&gt;
 REFRESH_TIME=15&lt;br /&gt;
 &lt;br /&gt;
 COMMAND_CHAR=&amp;quot;#&amp;quot;&lt;br /&gt;
 INCOMING_DIR=/var/spool/sms/incoming&lt;br /&gt;
 ALLOW_PHONES=&amp;quot;79128141111 79128141112&amp;quot;&lt;br /&gt;
 SEND_BACK_REPORT=YES&lt;br /&gt;
 &lt;br /&gt;
 to_log(){&lt;br /&gt;
        text=$1&lt;br /&gt;
        export LANG=en_EN&lt;br /&gt;
        log_date=`date &amp;quot;+%b %d %H:%M:%S &amp;quot;`&lt;br /&gt;
        log_host=`hostname -s`&lt;br /&gt;
        echo &amp;quot;$log_date $log_host $DAEMON: $text&amp;quot; &amp;gt;&amp;gt; /var/log/$DAEMON.log&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 start() {&lt;br /&gt;
        echo -n &amp;quot;Starting $DAEMON: &amp;quot;&lt;br /&gt;
        $0 --daemon &amp;amp;&amp;amp; success || failure&lt;br /&gt;
        RETVAL=$?&lt;br /&gt;
        echo&lt;br /&gt;
        [ $RETVAL = 0 ] &amp;amp;&amp;amp; touch /var/lock/subsys/$DAEMON&lt;br /&gt;
        to_log &amp;quot;Starting ...&amp;quot;&lt;br /&gt;
        return $RETVAL&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 stop() {&lt;br /&gt;
        # Stop daemon.&lt;br /&gt;
        echo -n &amp;quot;Shutting down $DAEMON: &amp;quot;&lt;br /&gt;
        killproc $0&lt;br /&gt;
        RETVAL=$?&lt;br /&gt;
        to_log &amp;quot;Stopping ...&amp;quot;&lt;br /&gt;
        echo&lt;br /&gt;
        [ $RETVAL = 0 ] &amp;amp;&amp;amp; rm -f /var/lock/subsys/$DAEMON&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 run() {&lt;br /&gt;
    for File in $(ls $INCOMING_DIR); do&lt;br /&gt;
        Allow=0&lt;br /&gt;
        for Phone in $ALLOW_PHONES; do&lt;br /&gt;
            cat $INCOMING_DIR/$File | grep &amp;quot;From: $Phone&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
            [ $? -eq 0 ] &amp;amp;&amp;amp; Allow=1&lt;br /&gt;
        done;&lt;br /&gt;
        [ $Allow -eq 0 ] &amp;amp;&amp;amp; continue&lt;br /&gt;
 &lt;br /&gt;
        cat $INCOMING_DIR/$File | grep &amp;quot;$COMMAND_CHAR&amp;quot;&lt;br /&gt;
        [ $? -ne 0 ] &amp;amp;&amp;amp; continue&lt;br /&gt;
 &lt;br /&gt;
        FromPhone=`cat $INCOMING_DIR/$File | grep &amp;quot;From:&amp;quot; | cut -d &amp;quot; &amp;quot; -f2`&lt;br /&gt;
 &lt;br /&gt;
        command=`cat $INCOMING_DIR/$File | grep &amp;quot;$COMMAND_CHAR&amp;quot; | cut -d &amp;quot;$COMMAND_CHAR&amp;quot; -f2`&lt;br /&gt;
        to_log &amp;quot;Incoming command: $command from $FromPhone&amp;quot;&lt;br /&gt;
        out=`$command`&lt;br /&gt;
 &lt;br /&gt;
        if [ &amp;quot;$SEND_BACK_REPORT&amp;quot; = &amp;quot;YES&amp;quot; ]; then&lt;br /&gt;
            smssend $FromPhone &amp;quot;$out&amp;quot;&lt;br /&gt;
            to_log &amp;quot;Send sms to $FromPhone: $out&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
        rm -f $INCOMING_DIR/$File&lt;br /&gt;
        to_log &amp;quot;Deleting file $INCOMING_DIR/$File&amp;quot;&lt;br /&gt;
    done&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 daemon() {&lt;br /&gt;
        exec &amp;gt;/dev/null&lt;br /&gt;
        exec 2&amp;gt;/dev/null&lt;br /&gt;
        (&lt;br /&gt;
        trap &amp;quot;&amp;quot; TERM&lt;br /&gt;
        while [ true ]; do&lt;br /&gt;
            run&lt;br /&gt;
            sleep $REFRESH_TIME;&lt;br /&gt;
        done;&lt;br /&gt;
        )&amp;amp;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    --daemon)&lt;br /&gt;
          daemon&lt;br /&gt;
          ;;&lt;br /&gt;
    run)&lt;br /&gt;
          run&lt;br /&gt;
          ;;&lt;br /&gt;
    start)&lt;br /&gt;
          start&lt;br /&gt;
          ;;&lt;br /&gt;
    stop)&lt;br /&gt;
          stop&lt;br /&gt;
          ;;&lt;br /&gt;
    restart)&lt;br /&gt;
          $0 stop&lt;br /&gt;
          $0 start&lt;br /&gt;
          exit $?&lt;br /&gt;
          ;;&lt;br /&gt;
    status)&lt;br /&gt;
          status $DAEMON&lt;br /&gt;
          echo&lt;br /&gt;
          ;;&lt;br /&gt;
    *)&lt;br /&gt;
          echo &amp;quot;Usage: $DAEMON {start|stop|restart|status|run}&amp;quot;&lt;br /&gt;
          exit 1&lt;br /&gt;
  esac&lt;br /&gt;
 &lt;br /&gt;
  exit 0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 COMMAND_CHAR=&amp;quot;#&amp;quot; – Признак команды&lt;br /&gt;
 INCOMING_DIR=/var/spool/sms/incoming – Директория для входящих смс-ок&lt;br /&gt;
 ALLOW_PHONES=&amp;quot;79128141111 79128141112&amp;quot; – Номера с которых разрешены команды&lt;br /&gt;
 SEND_BACK_REPORT=YES – Отправлять вывод смс-ой обратно&lt;br /&gt;
 &lt;br /&gt;
Чтобы не заморачиваться всякими пас фразами и т.д. было принято решение принимать команды только от определенных номеров (не проверял как будут выглядеть смс-ки от подменных номеров) и делать проверку на наличие спец символа перед командой, дабы отгородить от случайной смс-ки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем демона в /etc/init.d/smsctrl, chkconfig --add smsctrl, service smsctrl start&lt;br /&gt;
&lt;br /&gt;
2-й способ&lt;br /&gt;
&lt;br /&gt;
 Дописываем в /etc/smsd.conf:&lt;br /&gt;
 eventhandler = /root/bin/sms_event.sh&lt;br /&gt;
 создаем /root/bin/sms_events.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 COMMAND_CHAR=&amp;quot;#&amp;quot;&lt;br /&gt;
 ALLOW_PHONES=&amp;quot;79128141111 79128141112&amp;quot;&lt;br /&gt;
 SEND_BACK_REPORT=YES&lt;br /&gt;
 &lt;br /&gt;
 [ &amp;quot;$1&amp;quot; = &amp;quot;RECEIVED&amp;quot; ] || exit 0&lt;br /&gt;
 &lt;br /&gt;
 to_log(){&lt;br /&gt;
    text=$1&lt;br /&gt;
    export LANG=en_EN&lt;br /&gt;
    log_date=`date &amp;quot;+%b %d %H:%M:%S &amp;quot;`&lt;br /&gt;
    log_host=`hostname -s`&lt;br /&gt;
    echo &amp;quot;$log_date $log_host $text&amp;quot; &amp;gt;&amp;gt; /var/log/smsctrl.log&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 File=$2&lt;br /&gt;
 &lt;br /&gt;
 Allow=0&lt;br /&gt;
 for Phone in $ALLOW_PHONES; do&lt;br /&gt;
    cat $File | grep &amp;quot;From: $Phone&amp;quot; &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
    [ $? -eq 0 ] &amp;amp;&amp;amp; Allow=1&lt;br /&gt;
 done;&lt;br /&gt;
&lt;br /&gt;
 [ $Allow -eq 0 ] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
 &lt;br /&gt;
 cat $INCOMING_DIR/$File | grep &amp;quot;$COMMAND_CHAR&amp;quot;&lt;br /&gt;
 [ $? -ne 0 ] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
 &lt;br /&gt;
 FromPhone=`cat $File | grep &amp;quot;From:&amp;quot; | cut -d &amp;quot; &amp;quot; -f2`&lt;br /&gt;
 &lt;br /&gt;
 command=`cat $File | grep &amp;quot;$COMMAND_CHAR&amp;quot; | cut -d &amp;quot;$COMMAND_CHAR&amp;quot; -f2`&lt;br /&gt;
 to_log &amp;quot;Incoming command: $command from $FromPhone&amp;quot;&lt;br /&gt;
 out=`$command`&lt;br /&gt;
 &lt;br /&gt;
 if [ &amp;quot;$SEND_BACK_REPORT&amp;quot; = &amp;quot;YES&amp;quot; ]; then&lt;br /&gt;
    smssend $FromPhone &amp;quot;$out&amp;quot;&lt;br /&gt;
    to_log &amp;quot;Send sms to $FromPhone: $out&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 rm -f $File&lt;br /&gt;
 to_log &amp;quot;Deleting file $File&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Проверка&lt;br /&gt;
&lt;br /&gt;
Создаем файлик /root/bin/test.sh следующего содержания:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 ls –la /etc | grep $1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Затем берем в руки телефон и посылаем смс с текстом #/root/bin/test.sh sms на заветный номер и смотрим в лог tail –f /var/log/smsctrl.log, если все хорошо — в ответ прилетит смс-ка вида: smsd.conf&lt;br /&gt;
&lt;br /&gt;
Заключение&lt;br /&gt;
&lt;br /&gt;
У меня данное решение, по смс-ке открывает ssh порт для входящих подключений. Я думаю, это не единственное применение, достаточно включить немного воображения.&lt;br /&gt;
&lt;br /&gt;
* [https://habrahabr.ru/post/114912/ взято тут...]&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>