[QPKG] SHUTDOWN - ua. wenn kein Client erreichbar ist

  • Hallo,


    @ Eraser: Konntest du in der neuesten Version die Abfragen auf die unterschiedlichen Twonky- und Squeezebox-Versionen schon einbauen? Wenn ja teste ich mal am Wochenende.


    clanforce bezüglich Plex: Die Anforderung ist ja nicht, ob Plex (soweit ich das kurzfristig herausgefunden habe ein Medienserver ähnlich wie Twonky) läuft, sondern ob ein Client streamt. Dazu reicht es wahrscheinlich nicht, nur auf den Prozess abzufragen (der läuft mit ziemlicher Sicherheit immer).


    Nach kurzer Suche hab ich fogenden potentiellen Ansatz gefunden:
    https://github.com/jkp/plexshell (eine Shellerweiterung für Plex)


    Eine andere Möglichkeit wäre es sich im Plexforum durchzuwühlen bzw. zu fragen:
    http://forums.plexapp.com/index.php/forum/85-linux/


    Diese Arbeit musst du dir aber wohl selbst antun - mangels einer Plex-Installation kann zumindest ich dir hier nicht weiterhelfen.


    Omar

  • Die Abfragen für die unterschiedlichen Versionen sind integriert,
    auch die Anzeige, welcher Interval aktiv ist.
    Mir fehlt noch die Abfrage für den PlexMedia-Server,
    Vorbereitungen habe ich dafür schon eingebaut.


    Für mich habe ich die Namen der Funktionen etwas umgeschrieben
    und hoffe, dass ich zwischen der lib.sh und wait4pc.sh keine inkonsistenz habe.
    Mir ist noch keine aufgefallen :mrgreen:




    Datei sind im ersten beitrag zu finden.

  • Zu Plex ist mir noch was eingefallen. Vielleicht kann man das so lösen - Wenn sich ein Benutzer über's Internet an der Adminoberfläche anmeldet, bleibt das NAS online. Somit hätte man sich die Abfrage, ob ein Client streamt, gespart und es ist sicher auch für andere Anwendungen sinnvoll. Kann man für Wait4PC eigentlich auch einen anderen Port nehmen, der nicht über www erreichbar ist?

  • Zitat von "clanforce"

    Kann man für Wait4PC eigentlich auch einen anderen Port nehmen, der nicht über www erreichbar ist?


    Zur Zeit sehe ich da keine andere Möglichkeit, da ich den WebServer vom AdminGUI verwende um direkt die Systembefehle zu verwenden.
    Über den Apache könnte ich zwar Scripte ausführen, die auf dem NAS liegen,
    aber nicht als Admin und nicht ohne zusätzliche Software, was ich vermeiden wollte.

  • Plex ist doch ein Server und müsste entsprechend einen Server-Port haben. Kann man nicht über netstat Verbindungen zu diesem Port abfragen?


    Bsp:

    Code
    [~] # netstat -nt | grep ESTABLISHED
    netstat: no support for `AF INET6 (tcp)' on this system.
    tcp        0     52 192.168.2.95:22         192.168.2.199:1292      ESTABLISHED
    [~] #
  • Hallo,


    Hier mein Feedback:
    Nach der Installation der Version 1.5.0.4 werden die alten Einträge in der Crontab im Webfrontend nicht angezeigt. Ich hab dann zum Testen einen neuen Eintrag gemacht, der einen (für mich) seltsamen Parameter hatte:


    Code
    */5 21-7 * * * /share/MD0_DATA/.qpkg/Wait4PC/wait4pc.sh -a OFF


    Danach ist mir aufgefallen, dass die Checks nicht durchgeführt wurden, nur wenn ich das Script manuell (ohne Parameter) aufgerufen habe. Daraufhin ich habe ich den Aufruf gleich wie in der Crontab gemacht, mit folgendem Ergebnis:


    Code
    wait4pc.sh -a OFFModel :TS-459Interval OFF activ : 1365190227


    Ich wollte dann die Parameter überprüfen, und dabei sind mir folgende Ungereimtheiten aufgefallen:


    Code
    ./wait4pc.sh -?Model :TS-459usage: ./wait4pc.sh optionsOPTIONS:   -h            Show this message   -s on|off     Shutdown de/aktivieren   -l on|off     Script-Log de/aktivieren   -i            Basiskonfiguration einrichten   -u            Ursprungszustand der crontab herstellen   -t            Status   -c            crontab ueberpruefen   -m            Konfigurationsmenue   -r            Reload crontab


    D.h. der Parameter "-a" scheint gar nicht zu existieren. Der beschrieben Help-Parameter "-h" funktioniert dafür nicht ;):



    Mit manueller Änderung der Crontab funktionieren aber alle Checks (wobei ich jetzt nicht überprüft habe, ob das NAS auch herunterfährt, wenn die Checks negativ sind).


    3 Punkte sind mir aber zusätzlich aufgefallen:


    • Die Einträge ins Sys-Log sind tw. mit falscher Zeitangabe - um 2 Stunden zu früh (pyLoad, Twonky und Squeezebox - also alle neuen Checks)
    • Bei einem Aufruf des Scripts über die Shell gibt es sehr viele (Fehler-)Meldungen
    • Der Check auf pyLoad ist scheinbar immer noch doppelt - zumindest wenn man den Messages auf Shell-Ebene glauben darf


    Ein letztes noch - das Webinterface ist mittlerweile sehr voll, um nicht zu sagen überladen. Ein paar Verbesserungsvorschläge würden mir dazu einfallen - wenn du willst kann ich diese mal zusammenfassen.


    Omar

  • Zitat von "Omar Hawk"

    Nach der Installation der Version 1.5.0.4 werden die alten Einträge in der Crontab im Webfrontend nicht angezeigt.


    An diesen Fall habe ich noch nicht gedacht.
    Der Parameter -a ist für die Identifikation des Interval-Eintrags, um den aktiven Interval im WebGUI anzuzeigen.
    Dieser sollte numerisch und fortlaufend sein.


    Zitat von "Omar Hawk"


    Code: Alles auswählen
    */5 21-7 * * * /share/MD0_DATA/.qpkg/Wait4PC/wait4pc.sh -a OFF


    Das dürfte daher nicht vorkommen. Ich kann mir aber denken, woran es liegt.


    Zitat von "Omar Hawk"

    Danach ist mir aufgefallen, dass die Checks nicht durchgeführt wurden, nur wenn ich das Script manuell (ohne Parameter) aufgerufen habe.


    Ups, das ist in der nächsten BETA behoben, so müßte es in der wait4pc.sh aussehen:

    Code
    "activ")
    	func_interval_set_activ ${ACTION}
    	func_run
    ;;


    Zitat von "Omar Hawk"

    D.h. der Parameter "-a" scheint gar nicht zu existieren.


    Hatte ich eigentlich absichtlich weggelassen, werde es aber nun hinzufügen.


    Zitat von "Omar Hawk"

    3 Punkte sind mir aber zusätzlich aufgefallen:


    Werde ich überprüfen.


    Zitat von "Omar Hawk"

    Ein letztes noch - das Webinterface ist mittlerweile sehr voll, um nicht zu sagen überladen.


    Daher hatte ich das Aus/Einblenden von gruppierten Bereichen integriert.


    Zitat von "Omar Hawk"

    Ein paar Verbesserungsvorschläge würden mir dazu einfallen - wenn du willst kann ich diese mal zusammenfassen.


    Immer her damit, mal schauen inwieweit ich es realisieren kann.

  • Zitat von "Eraser-EMC2-"


    Der Parameter -a ist für die Identifikation des Interval-Eintrags, um den aktiven Interval im WebGUI anzuzeigen.
    Dieser sollte numerisch und fortlaufend sein.


    Das verstehe ich nicht ... Welches Intervall? Ich dachte das Shell-Script wird rein über die Crontab gesteuert? :?


    Zitat von "Eraser-EMC2-"


    Immer her damit, mal schauen inwieweit ich es realisieren kann.


    Mach ich gerne - wird aber noch etwas dauern - hab für den Rest des Wochenendes keine Zeit!


    gN8


    Omar

  • Ich brauchte eine Verbindung zwischen dem Crontan-Aufruf und Anzeige in der WebGUI.
    Dazu ist der Parameter -a als Identifikation gedacht.
    Die Aufgefallenen Bugs habe inzwischen behoben.

  • Zitat von "Eraser-EMC2-"


    pyLoad wird in der nächsten Version vorhanden sein.


    Bei RTRR kann ich es nicht sagen, da müßte ich wissen welches Programm dabei läuft bzw. gestartet wird.



    */5 bedeutet, das es alle 5 Minuten ausgeführt wird
    bei 5 wird das Script nur 5 Minuten nach der vollen Stunde, also zB. 18:05 ausgeführt


    Danke für die Info.


    Also wenn RTRR Sync läuft ist in der Prozessliste qsync aktiv.


    schönes Wochenende

  • Wie sieht bei dir die /etc/config/qsync/qsync.conf und qsyncd.conf aus.
    Private Angaben kannst du unkenntlich machen,
    ich benötige nur eine Möglichkeit, womit ich einen aktivierten Job erkennen kann.

  • Hallo Eraser-EMC2-
    Das Programm von Dir finde ich sehr gut.
    Doch leider gibt es eine Funktion die ich suche, aber bis jetzt noch nicht gefunden habe.
    Mein Windows Server hatte diese und ist einfach super.
    Vielleicht kannst helfen.


    Mein Server hatte immer die Netzwerklast beobachtet.
    Wenn ein PC oder ein I-Phone, I-Pad, usw. auf den Server zugegriffen hat dann ist kurz eine höhere Netzwerkauslastung zu sehen. Wenn dies geschieht, dann rechnet das Programm eine fest eingestellt Zeit herunter. Wenn innerhalb dieser Zeit ein erneuter Datenfluss besteht, dann fängt der Server erneut von vorne an runterzurechnen. Wenn innerhalb dieser Zeit (bei mir damals 60 Minuten) keine Netzwerkauslastung zu sehen ist, dann fährt der Server automatisch runter.


    Das Programm für Windows Server heißt "Intelligent Shutdown".


    Gibt es eine Möglichkeit, dass Du dieses Script ergänzen könntest?
    Dann müsste man das mit dem Ping nicht machen und Geräte die im Standymodus würden damit auch funktionieren. Bei Fragen wie das Gerät im Detail funktioniert einfach schreiben.


    Vielen Dank
    Grüße

  • Ich wüßte gerade nicht, wie ich die Netzwerklast überprüfen sollte.


    Zitat von "dominic.boesl"

    Dann müsste man das mit dem Ping nicht machen und Geräte die im Standymodus würden damit auch funktionieren.


    Meine Anmerkung im ersten Beitrag war als Hinweis, da ich bei nie darauf geachtet habe, ob die Festpallten in den Standby-Modus gehen.
    Bis jetzt habe ich ein paar Rückmeldungen bekommen, wo weiterhin der festplatten-Stndby funktionierte.

  • Danke für die Rückinfo.
    Das meine ich aber nicht.
    Beispiel:
    Mein Samsung Handy ist immer Online über WLAN. Manchmal hole ich mir auch Daten vom Qnap. Dein Programm hat also mit dem Ping mein Samsung Handy gefunden und prüft ständig. Deswegen würde der Qnap niemals herunterfahren, weil das Handy immer online ist (obwohl keine Daten verwendet werden).


    Schade, das mit dem Datenpacket sprich Netwerklast einstellen zur Prüfung wäre ideal gewesen, so wie ich es vorher hatte.
    Anbei ein im Anhang ein Beispiel.
    Ich hatte es so eingestellt, dass wenn eine Netzwerklast unter 100 kb/s ist nach 60 Minuten ausschalten soll. Sollte innerhalb dieser Zeit 100 kb/s oder mehr benötigt werden (reicht ein Zugriff auf den Ordner) dann würde dieser wieder von vorne (60 Minuten erneut) anfangen.


    Vielleicht hast Du ja doch eine Idee.
    (Da bin ich mir sicher)


    Ansonsten wäre das ein Projekt für die Zukunft. Habe es Qnap auch schon mal geschrieben.
    Grüße und schönes Wochenende

  • Hallo, erstmal danke für das Script :)


    ich habe gerade leider noch ein Problem mit diesem: Ich habe die crontab Regel */5 * * * * hinzugefügt aber nach aus und wieder einschalten der NAS fährt diese nicht mehr automatisiert runter, erst wenn ich Always in Standby händisch wieder anwähle. Anbei ein Screenshot wie es konfiguriert ist. Woran kann das liegen und wie stelle ich es ein, dass automatisch funktioniert?

  • Bei dir fehlt noch der untere crontab-Eintrag für den Shutdown-Zeitpunkt.
    Checkinterval steht für den Abfrage-Rhythmus, was das Script die Überwachungsaktivitäten starten soll.
    In Zusammenhang mit "Always on Standby" könntest du nur mit dem "Checkintervall" das Herunterfahren steuern,
    nur dabei mußt du mindestens noch die Stunde eintragen.
    ZB.:

    Code
    */5   22-23  *   *   *


    Hiermit wird zwischen 22 und 23 Uhr jede 5 Minuten den Status überprüft.


    Oder läßt den Intervall auf

    Code
    */5  *  *  *  *


    stehen und gibst im unteren Feld einen zusätzlichen Crontab-Eintrag ein:

    Code
    *  22  *  *  *


    Damit beginnt um 22 Uhr die Überprüfung und fährt das NAS herunter, wenn keine Aktivitäten statt finden.

  • Hallo, danke für die Antwort :) okay das werde ich mal probieren, aber gibt es eine Möglichkeit, dass das NAS immer prüft ob noch ein Client verfügbar ist? gibt bei diesem NAS keine festen Zeiten wann es genutzt wird/wann nicht.