Перейти к содержанию
Форум русской поддержки продукции Synology

Как удаленно выключить 109j


Рекомендованные сообщения

109j подключен к домашней локалке по статическому айпишнику. Задача - удаленно выключать NAS путем кликания по ярлыку на машине, подключенной к локалке. Никак не могу сообразить, что надо сказать NASу. Что-то типа http://192.168.1.50/бла-бла-бла (192.168.1.50 - IP NAS). Кто-нибудь заморачивался подобной задачей?

Прошивка DSM 2.2-0959.

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...
109j подключен к домашней локалке по статическому айпишнику. Задача - удаленно выключать NAS путем кликания по ярлыку на машине, подключенной к локалке. Никак не могу сообразить, что надо сказать NASу. Что-то типа http://192.168.1.50/бла-бла-бла (192.168.1.50 - IP NAS). Кто-нибудь заморачивался подобной задачей?

Прошивка DSM 2.2-0959.

 

1) зайти на NAS через веб-интерфейс и нажать "Выключение".

2) через telnet или ssh

3) пункт 2 обернутый в "оболочку", например, автоматизировать набор команд через .bat (но нужна стороняя софтинка для telnet, т.к. консолька отрубится после запуска telnet

Команда на выключение NAS - "poweroff", перезагрузка, соответсвенно "reboot"

4) поднять веб-сервер на DS и положить скриптик (желательно конечно с доступом по паре логин/пароль). Вот код, назовем, к примеру, stop.php

<?php

$result = shell_exec('poweroff');

echo "Status: $result";

?>

Соответственно остановка DiskStation будет производиться командой http://192.168.1.50/stop.php

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
4) поднять веб-сервер на DS и положить скриптик (желательно конечно с доступом по паре логин/пароль). Вот код, назовем, к примеру, stop.php

Соответственно остановка DiskStation будет производиться командой http://192.168.1.50/stop.php

 

Пункт 4 не проходит:

Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /volume1/web/stop.php on line 2

Status:

 

И как сделать доступ по логину/паролю?

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

Такая же фигня...

Не из-за того ли что нужно предварительно авторизоваться на DiskStation?

Тогда вопрос как программно это можно сделать?

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

 

 

И как сделать доступ по логину/паролю?

 

Не подумал, что он может запросить логин/пароль :)

 

Тогда скриптик посложнее будет немного. Для его работы необходимо включить Telnet или SSH

Листинг stop.php

<?php

//Скрипт выключения Synology DiskStation

$cfgServer = "localhost"; //адрес сервера, если скрипт лежит на Synology, оставляем localhost

$login = "admin"; //логинимся под админом

$pass = "password"; //пароль

$cfgPort = 23; //порт, telnet - 23, SSH - 22

$cfgTimeOut = 10;

 

$usenet = fsockopen($cfgServer, $cfgPort, $errno, $errstr, $cfgTimeOut);

 

if(!$usenet){

echo "Connexion failed<br>";

exit();

}else{

echo "Connected to DiskStation<br>";

stream_set_timeout($usenet, 2);

fputs ($usenet, $login."\r\n");

stream_set_timeout($usenet, 3);

fputs ($usenet, $pass."\r\n");

stream_set_timeout($usenet, 3);

fputs ($usenet, "poweroff\r\n");

stream_set_timeout($usenet, 5);

$j = 0;

while ($j<20){

$res=fgets($usenet, 128);

echo $res;

$j++;

flush();

}

}

fclose($usenet);

echo "End.\r\n";

?>

 

Для перезагрузки меняется

fputs ($usenet, "poweroff\r\n");
на
fputs ($usenet, "reboot\r\n");
Ссылка на сообщение
Поделиться на другие сайты
И как сделать доступ по логину/паролю?

Если у тебя DiskStation виден только из локалки, то ничего настраивать в принципе не надо больше.

Но если он у тебя виден всем, а ты хочешь выключать его только из своей локальной сети, то в каталог со скриптом нужно положить файлик с именем ".htaccess" и содержанием

Order Allow, Deny

Deny from All

Allow from 192.168.1.0

Файл говорит встроенному серверу Apache, что в данный каталог могут заходить только с ip-адресов из диапазона 192.168.1.1-255, если у тебя другой локальный диапазон, то измени соответсвенно строку

Allow from 192.168.1.0

Если у тебя DiskStation виден, например, в интернете, то проще вставить авторизацию в сам скрипт. Понадобиться помощь - обращайся - помогу.

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

В данном скрипте авторизация на серваке проходит нормально (проверял путем подстановки неправильных данных, ругался на не правильные данные), проблема судя по всему в команде "poweroff".

Т.к. пытался через Telnet скомандовать "poweroff"... и тишина... сервак никак не реагирует... В чем может быть засада?

З.Ы. Через SSH тоже не удалось запустить данную команду.... тишина...

Ссылка на сообщение
Поделиться на другие сайты
В данном скрипте авторизация на серваке проходит нормально (проверял путем подстановки неправильных данных, ругался на не правильные данные), проблема судя по всему в команде "poweroff".

Т.к. пытался через Telnet скомандовать "poweroff"... и тишина... сервак никак не реагирует... В чем может быть засада?

З.Ы. Через SSH тоже не удалось запустить данную команду.... тишина...

 

А какая версия прошивки? Стоит ли bootstramp? Что говорит при введении команды по telnet или SSH?

Вообще команды из Synology Wiki:

http://forum.synology.com/wiki/index.php/B...he_Synology_box

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

У меня на 110+ под админом не реагирует, выключается по ssh только под рутом. Без натужного моргания лампочек, немного похрюкает и кирдык.

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

а есть живые в этой теме?

 

Тогда скриптик посложнее будет немного. Для его работы необходимо включить Telnet или SSH

Листинг stop.php

 

apache 2.2, php 7.0.21. при переходе на условный stop.php выдаётся ошибка

Connected to DiskStation
SSH-2.0-OpenSSH_6.8p1-hpn14v6 Protocol mismatch. End.

как-то может модернизировать скрипт надо?

Ссылка на сообщение
Поделиться на другие сайты
а есть живые в этой теме?

Поскольку предпоследняя (Вашу не считаем) запись в этой теме 7-ми летней давности, то Ваш попрос выглядит риторическим. А посему уточните какой их 4-х перечисленных сценариев решения задачи в названии темы Ваш?

 

PS Если речь идёт о виндовом решении с компа, то мне лично нравится 3-й вариант с командой из-под WinSCP ...

Ссылка на сообщение
Поделиться на другие сайты
Поскольку предпоследняя (Вашу не считаем) запись в этой теме 7-ми летней давности, то Ваш попрос выглядит риторическим. А посему уточните какой их 4-х перечисленных сценариев решения задачи в названии темы Ваш?

вообще интересует возможность тушить dsm get-запросом. приведённый выше php-скрипт вроде бы как раз то что нужно, но при выполнении выдаёт ошибку.

Ссылка на сообщение
Поделиться на другие сайты
вообще интересует возможность тушить dsm get-запросом. приведённый выше php-скрипт вроде бы как раз то что нужно, но при выполнении выдаёт ошибку.

При всём уважении - это не самое правильное решение. Поскольку задача php-скрипта все равно передать команду через ssh, то логичнее и органичнее делать это через ssh-клиента на компе. И потом сек'юрнее это делать не по логину и паролю а по ключам ...

 

Но желание аля "нужен точно такой, но с перламутровыми пуговицами!" видимо всё же сильнее ;)

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в этой теме...

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

  Разрешено не более 75 эмодзи.

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

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

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

Загрузка...
×
×
  • Создать...