Перейти к содержимому
Калькуляторы

SSH и Mikrotik Хочу выполнить команду на удаленном linux сервере

Есть Mikrotik RB751 и 3G модем. Хочу чтобы я мог отправить СМС с секретным содержанием на модем и виртуальная машинка перезагрузилась (поднятая на другом linux сервере на kvm).

Настроил приём СМС, научил Mikrotik выполнять заранее написанный скрипт по определенной СМСке.

Далее настроил чтоб Mikrotik выполнял команды на linux гипервизоре по SSH без запроса пароля (по ключам).

Написал тестовый скрипт:

/system ssh address="192.168.10.169" user="admin" command="touch 1.txt"

(типа должен создать файлик 1.txt на хосте-гипервизоре).

Из терминала (в командной строке Микротика) отрабатывает на ура, на удаленном сервере появляется файлик, а если в Winbox нажать Run Script ничего не происходит (в логах пишется что скрипт выполнился).

Соответственно когда отправляю СМС ничего не происходит, в логах пишет, что скрип выполнился.

Такая ссылка наводит на печалные мысли: http://forum.mikrotik.com/viewtopic.php?f=9&t=71262

 

Может есть идеи как передать команду на другую linux машину? Может не SSH?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С правами поиграйтесь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С правами поиграйтесь

Ну в свойсвах скрипта все галочки стоят, владелец: admin, в winbox захожу тоже как admin. Так что думаю не в этом дело ((.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А ключи все есть и системному пользователю доступны?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В Микротике я пользователей не создавал, есть только один встроенный admin, все действия от него выполнял, в терминале от этого пользователя скрипт отрабатывает без ввода пароля, а в winbox если нажать Run Script ничего не происходит (в winbox захожу тоже под admin). Причем в терминале можно даже не саму команду ввести: /system ssh address="192.168.10.169" user="admin" command="touch 1.txt", а просто ввести /system script run script1 и скрипт отработает как надо, т.е. работает только в терминале.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем если кому интересно. Сделал через PHP запрос.

На linux машине с поднятым Apache+php наговнокодил файлик action.php:

<?php
 session_start(); // Начинаем сессию
 if ($_GET["command"] == "rebootvm") {
   system('sh /home/user/rebootvm.sh');
 }
 $command = isset($_SESSION["command"]);
?>

То есть если передать параметру command значение rebootvm, выполнится скрипт rebootvm.sh

На Микротике написал скрипт:

/tool fetch url="http://youripaddress/action.php\?command=rebootvm"

 

Всё !! Осталось только отправить СМС на модем с содержанием: :cmd секретное_слово script имя_скрипта

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.