Задать вопрос
@demonca13

Как удаленно перезагрузить Grandstream GXP2200 каждый день?

Имею сеть где все распределено по VLan-ам, есть сервер Asterisk и IP телефоны из которых 5 Grandstream у руководителей, телефоны видны только Asterisk-у. Задача такая, надо каждый день перезагружать эти 5 Grandstream-а, но сам телефон такой функции не имеет, но есть метод перезагрузки по SSH простой командой reboot. Но со скриптом есть маленькая проблемка, так-как Asterisk установлен на Centos 5.2, где обновления и установка пакетов строго запрещена, не имею возможности использовать expect и sshpass.

Какие методы посоветуйте?
Заранее спасибо всем.)
  • Вопрос задан
  • 1038 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
В такой ситуации возможно сработает с таким "хаком". Когда-то давно использовали его на проекте в отчасти схожей ситуации.

Сперва нужно создать скрипт, который выводит пароль с использованием echo
#!/bin/sh
echo "secret_Grandstream_pass"


Для примера, допустим скрипт будет храниться в /home/root/grandstream_pass
Нужно назначит права на исполнение этому скрипту chmod u+x /home/root/grandstream_pass

Затем создать ещё один скрипт, выполняющий удаленную ssh-команду
#!/bin/sh
# Заставляем ssh считать что у нас нет дисплея, что поспособствует тому, что ssh Не будет запрашивать пароль
export DISPLAY=:0

# Тот самый скрипт с паролем
export SSH_ASKPASS=/home/root/grandstream_pass

# Выполняем ssh. setsid создаст новый сеанс без контролирующего терминала, что так же способствует тому, чтобы ssh не запросил пароль
setsid ssh user@server "reboot"


Вместо второго скрипта можно использовать однострочник
DISPLAY=: SSH_ASKPASS=/home/root/grandstream_pass setsid ssh user@server "reboot"
или
echo nothing | DISPLAY=: SSH_ASKPASS=/home/root/grandstream_pass ssh user@server "reboot"
Ответ написан
@demonca13 Автор вопроса
Все оказалось довольно банально.
GrandStream принимает HTTP запросы, где можно отправить запрос на перезагрузку.

http://ип_адрес_телефона/cgi-bin/api-sys_operation...

сделал скрипт которую запускает крон каждый день

#!/bin/bash
get "http://ип_адрес_телефона/cgi-bin/api-sys_operation..."
sleep 30
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nss205
Сильно проще подключиться к телефону по ssh, где help подскажет, что нужно просто набрать reboot.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы