Wake on Lan mit Freenas 8.0.3 / Automatisches Herunterfahren nach X min ohne Nutzung

Status
Not open for further replies.

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Hallo PrincePaul

Wie sieht denn dein Script aus?

Ich hab mal irgendwo gelesen (weiß leider nicht mehr wo) das die Verschachtelung mit dem if wie in dem ersten Script vorne nicht funktioniert. Falls du das so gemacht hast versuch mal erstmal nur eine IP mit einem IF. Ist aber nur eine Vermutung.
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Hey therab,

Ja hab ich auch
moment hab 2 Stück ausprobiert:

1 Variante:


#!/bin/bash

_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der PCs ist eingeschaltet" ;;
2) echo "Kein PC online - Shutdown in 60 Sekunden" ; shutdown -p +1 ;;
esac
exit $1;
}

# Checken ob PC1 an ist
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi

# Wenn kein PC an ist 3 mins warten falls gerade einer Neu startet
echo "Kein PC online - Warte 180 Sekunden"
sleep 180

# PCs nochmals checken
# Checken ob PC1 an ist
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi

# Falls keiner der PCs online war herunterfahren
_exit 2



2. Variante:

#!/bin/bash

_exit () {
case $1 in
1) echo "Kein Shutdown - Mindestens einer der PCs ist eingeschaltet" ;;
2) echo "Kein PC online - Shutdown in 60 Sekunden" ; shutdown -p +1 ;;
esac
exit $1;
}

# Checken ob PC1 oder PC2 oder TV1 oder TV2 an ist
# .31 PrincePaul-PC .22 Unser-PC-1 .21 TV .25 TV2
if [ `ping -c 5 -i 1 192.168.178.31 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.21 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.25 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi

# Wenn kein PC an ist 3 mins warten falls gerade einer Neu startet
echo "Kein PC online - Warte 180 Sekunden"
sleep 180

# PCs nochmals checken
# Checken ob PC1 oder PC2 oder TV1 oder TV2 an ist
if [ `ping -c 5 -i 1 192.168.178.31 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.22 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.21 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi
if [ `ping -c 5 -i 1 192.168.178.25 | grep -wc 100.0%` -eq 0 ] ; then _exit 1 ; fi


# Falls keiner der PCs online war herunterfahren
_exit 2


aber deins finde ich noch besser mit dem IP Bereich.
Ich baue das gerade bisschen um weil ich dann später 5 Geräte damit abfragen will/muss
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
So hab mal dein Skript genommen,
natürlich meine IP Adressen eingetragen
das ganze in ne txt Datei dann einfach die Endung in sh umgeändert
755 Rechte vergeben und gleicher Fehler -.-

7: Syntax error: expecting "in"

also vorher stand ne 4 davor aber das ist ja nur die Zeile in der der Fehler ist....
 

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Hallo PrincePaul

Also bei mir läuft das Script ohne den Fehler.

Mit welchem Editor hast Du die Datei erstellt? Ich habe PSPad verwendet. Vielleicht liegts ja am Editor.
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Den ganz normalen Text Editor von Windows

aber ich lade PSPad mal runter ist ja ne Freeware.



Nachtrag:

Hab das ganze nochmal mit PSPad gemacht gleicher Fehler :(
Magst du mir bitte mal deine sh-Datei also ein komplettes Skript per E-Mail schicken ?
(ich schicke dir mal ne PM)


so und jetzt gute Nacht!
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
VIELEN DANK !!!

Hat alles funktioniert, keine Ahnung woran es lag.
Hab deine Datein mit PSPad geöffnet meine Ip´s eingetragen und es lief.

Danke :)
 

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Vermutlich lags am nicht Unix/Linux konformen Windows Editor.

Sobald man eine Datei damit bearbeitet kommen wohl steuerzeichen mit rein die dann falsch interpretiert werden.
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Jop genauso wurde mir das auch erklärt.
Zitat:

Windows macht den Zeilenabschluss in Text-Dateien mit <CR><LF> (Binär 0x0D, 0x0A). Damit kommt die Linux-Shell nicht immer zurecht.

:D

Aber jetzt läuft alles so wieso soll.
Cron Job ist eingerichtet, wobei man da anscheinend bei Befehl nur den Pfad angibt des Skriptes und nicht noch sh davor wie bei putty kann das sein ?
 

JJoker

Dabbler
Joined
Jul 18, 2012
Messages
14
Also vielen Dank für das script, funktioniert nach einigem hin und her jetzt perfekt !

Einzig der Eintrag in den CRON von der FreeNAs gibt mir noch ein Rätsel auf ... oder ist es wirklich nur unter Befehlt : /mnt/da1/script/Shutdown.sh ???

Also meine FreeNAS mit "Computer Starten" aus der FritzBox funktioniert nach dem shutdown, aber irgendwie ignoriert er zB. meinen W7 PC wenn ich zB. auf das freigegeben Verzeichnis zugreife völlig, sprich er schläft weiter :)

Muss ich da noch was spezielles bei sagen oder konfigurieren ?
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Also beim Cron muss man nicht wie dort steht den Befehl eingeben sondern wies auch im Freenas wiki steht den Pfad der auszuführenden Datei.

Das gleiche Problem hatte ich nämlich auch :D

Bezüglich WoL kann ich dir nicht weiterhelfen, weil komischerweise mein Mainboard/Netzteil das völlig verweigert -.-
 

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Mit WOL hatte ich auch so meine Probleme. Die auf dem Mainboard verbaute Netzwerkkarte wollte auch nicht.

Hab mir dann für ca. 20 EUR eine Intel EXPI9301CTBLK PRO1000 Netzwerkkarte CT PCIex bulk bestellt.

WOL funktioniert damit ohne Probleme.

In Verbindung mit dem shutdown Script eine runde Sache.

PS:
Update von 8.0.4 p3 auf 8.2.0 p1 über CD ohne Probleme.
 

JJoker

Dabbler
Joined
Jul 18, 2012
Messages
14
Bei mir ist nun alles OK, script läuft und das aufwecken erledigen 2 kleine Helfer.

PC : DatInf LAN Wakeup Tool (Freeware, bei bis zu 3 Geräten die aufzuwecken sind)
Smartphone Android : Wake up (Freeware, keine Begrenzung)

Die Links bitte googlen, bin mir nicht sicher ob das OK wäre diese hier zu posten.
 

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Verwende wolcmd als command line WOL tool.

Ist Freeware ohne Einschränkung.
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Hi leute hab wieder mal ein Problem :D

hab mir neue Platten besorgt fürs NAS dann wieder alles installiert und Daten rauf kopiert... als ich dann beim Skript angekommen war
alles so eingestellt wie vorher hatte auch extra nochmal über Putty getestet ... funktioniert

dann aber wenn ich es als cron einrichte kommt jedesmal wenn er das Skript ausführen soll folgende Fehlermeldung in der Konsole:

Aug 2 17:35:01 freenas sudo: root : TTY=unknown ; PWD=/root ; USER=root ; COMMAND=/etc/find_alias_for_smtplib.py -FCronDaemon -odi -oem -oi -t



Nachtrag: ist wohl keine fehlermeldung hab ich mir sagen lassen aber das Skript funktioniert auf jedenfall nicht denn mein Nas lief die ganze Nacht durch.
Und vorher kam diese Meldung auch nie.

Ich werde nachher mal nen Screenshot vom cron Job machen evtl hab ich da was vergessen
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
So hier nochmal die Bilder:

attachment.php


attachment.php


/mnt/Daten/Freenas/Skripte/shutdown.sh

Das ist der komplette Befehl bzw. beim Cron ja der Pfad

wenn ich das bei Putty eingebe mit sh davor funktionierts... ich weiß aber nicht warum beim cron nicht.
 

Attachments

  • Unbenannt.jpg
    Unbenannt.jpg
    8.6 KB · Views: 262
  • Unbenannt2.jpg
    Unbenannt2.jpg
    6.6 KB · Views: 239

therab

Dabbler
Joined
Jun 5, 2012
Messages
23
Hallo PrincePaul

Also bei meinem FreeNAS ist der Cron Job bei Alle N Minuten auf 30 eingestellt. Weiterhin ist bei mir Redirect Stdout angehakt. Der Pfad ist bei mir natürlich auch ein anderer. Sollte aber alles meines Erachtens nix mit der Fehlfunktion zu tun haben.

Was mir noch einfällt - sind die Rechte für shutdown.sh auf 755?

cu
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
ja genau deshalb verstehe ich auch nicht warum das nicht läuft ...

hab nochmal die Rechte verteilt und nochmal über ssh ausgeführt und es ging sofort:

attachment.php


attachment.php
 

PrincePaul

Patron
Joined
Feb 26, 2012
Messages
225
Ok es funktioniert wieder.

Ist wohl ein Fehler in der Programmierung vom Cron,

denn egal welche Zeit man einstellt es geht nicht außer bei 30min
 

Glon

Cadet
Joined
Oct 17, 2012
Messages
5
Hey,

habe mir genau so ein Skript gestern selber geschrieben, bis ich hier auf den Thread gestoßen bin.

Allerdigs verzweifle ich genau an dem Problem wie einer meiner Vorredner - ich bekomme immer den Fehler:

Syntax error: expecting "in"

Habe auch schon verschiedene Editoren (PSPad, Chrimson) versucht.. hat jemand einen Tipp bzw. kann mir das funktionierende Skript schicken?

Viele Dank schon mal!

Glon
 
Status
Not open for further replies.
Top