Synology per Script runter fahren?

Na da fress ich doch glatt einen Besen! Ich nehme alles zurück und behaupte das Gegenteil! Bei mir funzt das Skript nun auch. Scheint am Update gelegen zu haben. Heute Mittag hatte ich einfach vergessen den Client Socket " scharf " zu machen.
Vor dem Firmwareupdate hat es aber definitiv nicht funktioniert!
Whatever… danke fürs Skript!

Peter

Nein, geht nicht. Ist genauso wie bei Dir…

Sent from my iPhone using Tapatalk - now Free

Also bei mir geht es jetzt! Hast die neueste FW von Synology drauf?

Hab die DEM 4.0-2228…
Geht aber leider noch immer nicht.
Per App von Syn schon. Na ja, warum auch nicht…

Sent from my iPhone using Tapatalk - now Free

Hallo Leute,

ich weiß, ihr wollt die gerade runterfahren - das scheint ja inzwischen zu klappen.

Kann die denn auch WOL, damit ich sie wieder hochfahren kann?

Meine kann WOL. DS212+

Danke Peter. Ich liebäugel mit ner Rackstation. Aber das sollte ja wohl das gleiche sein.

… Ich möchte endlich mein Billig-NAS hier wegschmeißen.

Ich auch! :slight_smile: Bin schwer in Versuchung mir die RS214 zu kaufen, dann müsste ich aber wieder mein 19" Schrank modifizieren! :frowning:
Bin mit der DS212+ aber sehr zufrieden!
Gruß,
Peter

Boah ist die teuer! Dann doch lieber ein HP Microserver mit FreeNAS, Nexenta oder OmniOS, Hauptsache zfs.

Danke für das Skript.
Konnte das gut brauchen… Der Energiesparplan der Synology funktioniert nicht, wenn man bestimmte Addons mit installiert hat.
Bei mir ists z.b. Perl + DLNA Medienserver + Logitech Squeezeboxserver…
Das Teil muss nachts ja nicht laufen.

Nun kann mir IPS die NAS nachts runterfahren :slight_smile:

Frage, die Synology unterstützt WOL.
Wie könnte ich mit IPS die NAS per WOL wieder einschalten?

Gibts denn auch ne Möglichkeit bestimmte Addons der Synology zu starten?
Dachte da an:
Wenn Medienreceiver angeht (ist per IP erreichbar) -> Dann einschalten des DLNA Medienservers der Synology…?

Hallo Gemeinde,

eben getestet und läuft wunderbar :slight_smile:

Mit dem Script kann man mittels eines Schalters im Webfront die Syno booten und herunterfahren.

Und so gehts :

Einen Client Socket mit IP und Port (23) der Syno erstellen.
Eine Boolean Variable erstellen und mit gewünschtem, eventuell eigenen Profil versehen.

Dann dieses Script als Actionscript der Variablen zuweisen.

Mac Adresse, Clientsocket ID und Logindaten müssen noch im Script angepaßt werden.

<?
// Konfigbereich :

  $mac = "01234567ABCD"; //MAC Adresse der Syno
   $ip = "255.255.255.255"; // Broadcast adresse
 $user = "root"; // User für den Login, eventuell "root"
   $pw = "XXXXXXX"; // Adminpasswort der Syno
   $id = 59678 /*[Synology Socket]*/;   //Client Socket auf port 23
   
   
// Ab hier nichts mehr ändern
################################################################################

function wake($ip, $mac, $port)
{
  $nic = fsockopen("udp://" . $ip, $port);
  if($nic)
  {
    $packet = "";
    for($i = 0; $i < 6; $i++)
       $packet .= chr(0xFF);
    for($j = 0; $j < 16; $j++)
    {
      for($k = 0; $k < 6; $k++)
      {
        $str = substr($mac, $k * 2, 2);
        $dec = hexdec($str);
        $packet .= chr($dec);
      }
    }
    $ret = fwrite($nic, $packet);
    fclose($nic);
    if($ret)
      return true;
  }
  return false;
}



if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand gestartet werden.";
    return;
}
if ($IPS_SENDER == "WebFront")
{
    SetValue(42236 /*[Mein Haus\Multimedia\Hauptmenü\Links\Synology Server\Power]*/, $IPS_VALUE);
} else {
 echo "Dieses Skript kann nur vom WebFront aus gestartet werden!";
}

if ($IPS_VALUE == true) // Wake On Lan
{
 wake($ip,$mac,9); //Port kann irgendwas sein
}

if ($IPS_VALUE == false) // Shutdown

{
 @CSCK_SendText($id,$user.chr(13));
IPS_Sleep(500);
@CSCK_SendText($id,$pw.chr(13));
IPS_Sleep(500);
@CSCK_SendText($id, "poweroff".chr(13));
 }
 

 
?>

Moin…

… mit der neuesten DSM-Version von Synology trennt das NAS bei mir immer die ClientSocket-Verbindung zu IPS.
Das war vorher nicht der Fall. Solange meine DS212+ Online war hatte mein ClientSocket verbindung. Jetzt habe ich ständig ein rotes Ausrufezeichen neben dem CS, ausser das NAS schickt gerade LOG Daten. Kurze Zeit danach kommt wieder das rote Ausrufezeichen neben der Instanz.

Ich musste mein Skript daher anpassen, so das der ClientSocket des NAS vor dem Senden des Runterfahr-Befehls einmal resetet bzw. neu verbunden wird.

Gruß,
Peter

Halo Peter,

gibt es denn hier neue Erkenntnisse?

Ich hab dein Script eingebunden und das Herunterfahren meiner Diskstation DS211 funktioniert.

Nur das Starten leider nicht.

Kannst du mir hier etwas behilflich sein?

Vielen Dank schon mal im Voraus

Gruß
Mirank

Moin…

… klar kann ich versuchen.

Was funzt denn genau nicht?

  1. Hast Du Wake On LAN im DSM-Menü aktiviert?

  2. Das NAS darf nach dem Runterfahren nicht vom Netz getrennt werden, denn dann funzt Wake On LAN nicht.

  3. Welches Skript benutzt Du?

Gruß,
Peter

Guten Morgen Peter,

vielen Dank für deine angebotene Hilfe, leider hab ich gestern feststellen müssen das offensichtlich die DS211 kein Wake On Lan unterstützt.

Das runterfahren funktioniert ja perfekt mit deinem Skript aber die fehlende Unterstützung des WOL erklärt auch warum das dann mit dem Skript nicht funktioniert.

Oder hast du ne Idee wie ich das nachrüsten kann oder irgendwie anders lösen kann?

Beste Grüße und schon mal einen Guten Rutsch !!

Mirank

Moin…

…ich habe auch gerade mal geschaut. Die kann kein WOL. Hmm… hat sie denn eine Autostart-Funktion nach Stromausfall?
Eventuell könntest Sie runter fahren per Skript und dann per schaltbarer Steckdosen vom Netz trennen und zum starten wieder an Netz hängen!?

Wäre eine Möglichkeit.

Gruß,
Peter

Ich hab das Thema jetzt nochmal aufgegriffen.

Leider starte die Synology nicht neue wenn man sie per Script herunterfärt und dann über einen Schaltaktor die Stromversorgung unterbricht. (Also einen Stromausfall simuliert)

Bei einem tatsächlichen Stromausfall funktioniert es aber ohne Probleme.

Hat jemand eine Idee??

Moin Leute,

das Funktioniert auch mit der Qnap 459 Pro II !

Vielen Dank.

Hallo zusammen,

habe ein NAS4Free. Bisher nur Testphase (also auch noch Default-Passwörter). WOL habe ich per IPS im Griff - scheint auch sehr zuverlässig zu laufen.
Nun soll das NAS natürlcih auch durch IPS abgeschaltet, sprich heruntergefahren werden.

Also habe ich einen Client-Socket mit NAS-IP und Port 22 eingerichtet. Dann das Script laufen lassen:

<?

$id_socket = 50177  /*[Übersicht\Client Socket - Nas4free]*/;


@CSCK_SendText($id_socket, "root".chr(13));
IPS_Sleep(2000);
@CSCK_SendText($id_socket, "nas4free".chr(13));
IPS_Sleep(2000);
@CSCK_SendText($id_socket, "shutdown -p now".chr(13));
?>

Nix passiert. Mache ich dasselbe über putty, zeigt nach dem Anmelden mit root und nas4free der Befehl „shutdown -p now“ seine Wirkung: nach ein paar Sekunden ist der Rechner aus. Und lässt sich per WOL wieder starten.

Im Debug ist nur zu sehen, dass die 3 Befehle gesendet werden. Jedoch jeweils ohne eine Antwort zu bekommen so wie in putty. Firewall habe ich zu Testzwecken gänzlich deaktiviert.

Kommt IPS nicht mit dem ssh klar?

Hallo,

ich habe eine Qnap aber das Prinzip ist das gleiche .

Versuch es mal hiermit.


 <?
// Konfigbereich :

  $mac = "00089bc6805c"; //MAC Adresse der Qnap oder was auch immer WOL
   $ip = "255.255.255.255"; // Broadcast adresse
 $user = "admin"; // User für den Login, eventuell "root"
   $pw = "passwort"; // Adminpasswort der Qnap 
   $port = "13131";
   $id = 12957 /*[Client Socket Qnap]*/;   //Client Socket auf port 23


// Ab hier nichts mehr ändern
################################################################################

function wake($ip, $mac, $port)
{
  $nic = fsockopen("udp://" . $ip, $port);
  if($nic)
  {
    $packet = "";
    for($i = 0; $i < 6; $i++)
       $packet .= chr(0xFF);
    for($j = 0; $j < 16; $j++)
    {
      for($k = 0; $k < 6; $k++)
      {
        $str = substr($mac, $k * 2, 2);
        $dec = hexdec($str);
        $packet .= chr($dec);
      }
    }
    $ret = fwrite($nic, $packet);
    fclose($nic);
    if($ret)
      return true;
  }
  return false;
}



if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand gestartet werden.";
    return;
}
if ($IPS_SENDER == "WebFront")
{
    SetValue(47729 /*[Geräte\Qnap \Qnap On/Off]*/, $IPS_VALUE);
} else {
 echo "Dieses Skript kann nur vom WebFront aus gestartet werden!";
}

if ($IPS_VALUE == true) // Wake On Lan
{
 wake($ip,$mac,9); //Port kann irgendwas sein
}

if ($IPS_VALUE == false) // Shutdown

{
@CSCK_SendText($id,$user.chr(13));
IPS_Sleep(500);
@CSCK_SendText($id,$pw.chr(13));
IPS_Sleep(500);
@CSCK_SendText($id, "poweroff".chr(13));
 }



?>

Lege dir noch eine Bol Variable an , die switch ist und die du bei Aktion mit diesem Script verknüpft , wenn du WOL bei dir aktiviert hast wird sie starten oder eben Runterfahren.

Viel Vergnügen