@demonca13

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

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

Какие методы посоветуйте?
Заранее спасибо всем.)
  • Вопрос задан
  • 837 просмотров
Решения вопроса 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект