Intereting Posts
Могу ли я видеть удаленный терминал? Невозможно добавить пользователя в файл sudoers объединить несколько строк данных, имеющих одно общее поле Подключение к устройству Bluetooth через терминал Как быстро добраться до верхней или нижней части очень длинного сценария? Есть ли программа, которая запустит настраиваемое контекстное меню Почему `postgres` требует оболочку? curl: (25) Ошибка загрузки FTP: 553 to vsftpd docker Интернет не работает без установленного gpu? Как правильно решить эту проблему памяти? Каков хороший способ отладки проблем при пересылке X через ssh, где некоторые приложения не будут запускаться? Установленный SFTP для AWS Linux – Невозможно прочитать Почему запуск команды как команды sudo return не найден? Использование tee для добавления строки в файл, а также использовать ее в качестве замены шаблона в другом файле Как отключить alt-tab на Fedora 25 (Wayland)

Сценарий оболочки для выполнения сеанса telnet в ser2net

Я установил xenserver (бесплатный) хостинг VM (Debian 7.5). На этом xenserver я подключил последовательный GSM-модем. Я настроил xen для запуска ser2net, поэтому у меня есть серийный прокси-сервер. Это прекрасно работает локально и дистанционно (telnet). Теперь на VM Debian я запускаю zenoss, и я хочу использовать функциональность пейджинга. Я создаю скрипт bash для имитации сеанса telnet и отправки сообщения. Этот скрипт работает только на 50%.

#!/usr/bin/expect set timeout 20 set number [lindex $argv 0] set message [lindex $argv 1] spawn telnet 10.10.0.52 3333 #wait? sleep 1 send AT+CMGS="$number"\r; expect ">" send "$message^Z"; interact #... 

Запуск скрипта:

 administrator@debian:/home/zenoss$ ./sms.sh +32486000000 xxen spawn telnet 10.10.0.52 3333 Trying 10.10.0.52... Connected to 10.10.0.52. Escape character is '^]'. AT+CMGS="+32486000000" > xxen^Z 

У меня возникают проблемы с отправкой управляющего символа Ctrl + Z для инициирования отправки, он зависает. (обратите внимание: ^ Z – это реальный символ, вставленный с vi). Плюс, как мне обращаться с несколькими получателями? И как мне выйти и отключиться.

EDIT: я попробовал

отправить «$ message ^ Z»;

в

отправить «$ message» ^ Z;

но получил этот результат:

 administrator@debian:/home/zenoss$ ./sms.sh +32486000000 xxen spawn telnet 10.10.0.52 3333 Trying 10.10.0.52... Connected to 10.10.0.52. Escape character is '^]'. AT+CMGS="+32486000000" > extra characters after close-quote while executing "send "$message"^Z; interact #... " (file "./sms.sh" line 10) 

ОБНОВИТЬ:

 #!/usr/bin/expect # - VAR set ctrlz \032 set xt \135 set timeout 15 set host [lindex $argv 0] set port [lindex $argv 1] set number [lindex $argv 2] set message [lindex $argv 3] # - CONNECT spawn telnet $host $port sleep 1 # - SEND send AT+CMGS="$number"\r; expect ">" send "$message$ctrlz"; expect "OK" # - END 

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

 send $message send \032 

или

 set ctrlZ \032 send "$message$ctrlZ" 

Ref: