Beiträge von Omar Hawk

    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

    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

    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

    Hallo,


    Bei pyLoad war es definitiv ein falscher Eintrag in der wait4pc.conf - es klappt jetzt! Wahrscheinlich hat die 1.5.0.1 einen falschen Wert geschrieben.
    Die einzige "Einschränkung" sind noch Fehlermeldungen beim direkten Aufruf des Scripts und dass der Status offenbar zweimal überprüft wird:


    Code
    No downloads running./sbin/write_log: /root/.pyload/opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0)log_tool: /root/.pyload/opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0)No downloads running./sbin/setcfg: /root/.pyload/opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0)/sbin/setcfg: /root/.pyload/opt/lib/libcrypto.so.0.9.8: no version information available (required by /usr/lib/libuLinux_config.so.0)


    Wenn Downloads laufen werden diese ebenfalls zweimal angezeigt.


    Bei Twonky und Squeezebox ist mir das Zurücksetzen der Konfiguration noch nicht gelungen - da spiel ich mich noch ein bisschen ... 8-)


    Omar



    ---Edit---



    Nachtrag:


    Wenn ich in der Squeezebox-Funktion "func_get_app_squeezebox" die Variable QPKG_SSOTS_DIR abfrage erhalte ich ein "N":

    Code
    QPKG_SSOTS_DIR=`${CMD_GETCFG} "SSOTS" Install_Path -f ${SYS_QPKG_CONFIG_FILE} -d N`echo ${QPKG_SSOTS_DIR}


    Meine Shell-Kenntnisse reichen aber nur soweit aus um zu verstehen dass der Pfad für das Squeezebox-QPKG nicht ermittelt werden kann ... Ich such aber weiter ... ;)


    Omar


    Nachtrag 2:
    Mit Trial & Error kommt man auch weiter ... :D
    /sbin/getcfg "SSOTS" Install_Path -f "/etc/config/qpkg.conf" liefert KEIN Ergebnis - klar, es gibt bei mir auch keine [SSOTS]-Sektion in der QPKG-Config.


    /sbin/getcfg "LogitechMediaServer" Install_Path -f "/etc/config/qpkg.conf" liefert hingegen sehr wohl ein Ergebnis:
    /share/MD0_DATA/.qpkg/LogitechMediaServer


    Ich habe also die Funktion "func_get_app_squeezebox" in lib.sh geändert und statt auf SSOTS auf "LogitechMediaServer" geändert - und siehe da alles funktioniert wie gewünscht.


    Der Grund ist möglicherweise die Umbenennung des QPKGs durch Logitech - früher hieß die Funktion eben anders ...


    Nachtrag 3: Die Konsequenz könnte aber dennoch etwas unangenehm sein - je nach eingesetzter Serverversion (ich glaube seit 7.7 heißt der ehemalige Squeezebox-Server Logitech-Mediaserver) müsste die Abfrage anders sein.


    Bei Twonky muss ich noch suchen - aber auch da könnte es an der Version liegen - ich hab die relativ neue 7.0.9!



    ---Edit---



    Noch ein Nachtrag (der Übersichtlichkeit halber in einen neuen Beitrag ;) :(


    Der Twonky-Server kann offensichtlich auf 2 verschiedene Arten eingerichtet / genutzt werden. Einmal über eine in die Firmware "eingebaute" Version (im NAS-Menü unter Anwendungen - UPnP-Medienserver zu finden) und einmal als QPKG. Ich nutze die QPKG-Variante. Deshalb ist bei mir auch in /etc/config/uLinux.conf in der Twonky-Sektion folgendes zu finden:


    Code
    [TwonkyMedia]Enable = FALSEWeb Enable = FALSE


    In /etc/config/qpkg.conf schaut's schon besser aus ;):


    Code
    [TwonkyMedia]Name = TwonkyMediaVersion = 7.0.9Enable = TRUEQPKG_File = TwonkyMedia.qpkgDate = 2012-11-16Shell = /share/MD0_DATA/.qpkg/TwonkyMedia/twonkymedia6.shInstall_Path = /share/MD0_DATA/.qpkg/TwonkyMediaWeb_Port = 9000WebUI = /Pid_File = /tmp/mediaserver.pidAuthor = QNAP Systems, Inc.


    Ich hab jetzt mal die Überprüfung in lib.sh (func_get_app_twonkymedia) von


    Code
    bAppTWONKYMEDIA=`${CMD_GETCFG} TwonkyMedia Enable -f ${CONF_ULINUX} -d FALSE`


    auf


    Code
    bAppTWONKYMEDIA=`${CMD_GETCFG} TwonkyMedia Enable -f ${SYS_QPKG_CONFIG_FILE} -d FALSE`


    geändert - und auch das funktioniert!


    Also auch hier die Schwierigkeit, dass das Script prüfen müsste, welche Variante vorhanden ist ...


    Könnte ev. so funktionieren (als Pseudo-Code)

    Code
    check Twonky in CONF_ULINUX
    if false
      check Twonky in SYS_QPKG_CONFIG_FILE
      if false
        set twonky = false
        exit
      fi
    fi
    set twonky = true


    Omar

    Zitat von "Eraser-EMC2-"

    Ich brauchte nur einige Funktionen kopieren, die Flüchtigkeitsfehler zu finden hat länger gedauert.


    Klappt super und funkt genauso wie gewünscht! :)


    Zitat von "Eraser-EMC2-"

    So, ich habe nun die beiden Bereiche "Dienste" und "Ping" einklappbar gemacht,
    so das die Seite etwas kürzer ist.
    Was meinst du dazu, sinnvoll ?


    Auf jeden Fall, vor allem wenn man so wie ich meistens am Notebook mit niedriger Auflösung arbeitet (auf meinem großen 24-Zöller ist es sicherlich kein Thema ;) ) - ich glaub es wäre noch sinnvoller wenn sich die GUI die Einstellungen merken würde ... Aber das ist nur ein unverschämtes Nice 2 have ... :roll:


    Auch die Anzeige der pingbaren Hosts klappt jetzt einwandfrei.


    Jetzt aber zu den weniger positiven Meldungen:
    Die Überprüfungen für Twonky und pyLoad funktionieren immer noch nicht, die Überprüfung der Squeezeboxen nicht mehr:



    Die "Buttons" für die Aktivierungen der Checks scheinen funktionslos zu sein und lösen nichts aus.


    Wenn ich das Script manuell in der Shell aufrufe erhalte ich diesen Output.


    Eventuell hat also der Check ob diese Funktionen überprüft werden können einen Bug. Wenn ich dazukomme versuch ich mal das Problem genauer einzugrenzen.


    Omar

    Zitat von "Eraser-EMC2-"

    In der Vergangenheit hatte ich intern schon die Möglichkeit eingebaut,
    auch bei den Intervallen mehrere Crontab-Einträge zu erstellen.
    Mal schauen, ob ich es reaktivieren kann.


    Ist aber kein Beinbruch, wenn das nicht klappt - solange die GUI den 2. Eintrag nicht überschreibt / löscht ist das OK! :D


    Zitat von "Eraser-EMC2-"

    Wahrscheinlich werde ich heute Abend eine überarbeitete Version hochladen


    Sobald ich Zeit hab teste ich wieder! :thumb:


    Omar

    Zitat von "Eraser-EMC2-"

    OK, ich sehe keinen Sinn darin, mehrere Intervalle einzutragen, sollte aber keinen Einfluß auf die WebGUI haben.


    Der Grund ist ganz einfach - während der Woche ist bei mir am Vormittag niemand zu hause - deshalb kann die Shutdown-Überprüfung auch dann laufen. Am Wochenende soll sie das aber nicht.
    Der Eintrag in der Crontab schaut dann so aus:

    Code
    */30 22-7 * * *
    */30 8-12 * * 1-5


    Omar

    Zitat von "Eraser-EMC2-"


    Könntest du mir dazu den pyLoad-Bereich aus der /etc/config/qpkg.conf posten ?
    Dann werde den korrekten Pfad aus der Konfig holen.



    Zitat von "Eraser-EMC2-"


    Mhh, das hatte bei mir funktioniert.
    Hattest du auch die letzte Version (V1.5.0.1) getestet?


    Ja, ich hab die letzte Version! Kann ich irgendwas zur Lösung beitragen? Wenn du mir sagst wo bau ich auch gerne Debug-Code ein!

    Zitat von "Eraser-EMC2-"


    genau


    Tut es aber nicht ... :(

    Zitat von "Eraser-EMC2-"


    Ist möglich und sollte eigentlich auch über die WebGUI möglich sein,
    evtl. hat sich dort auch ein Fehler eingeschlichen :(


    Es gibt bei der Sektion "Crontab entry for the check interval :" kein "Add" so wie es das bei "Crontab entries for a controlled shutdown :" gibt!


    Omar

    Hallo Eraser,


    Ich hab mal schnell einen Blick auf die letzte Version geworfen. Folgendes ist mir aufgefallen:

    • Squeezebox - die Abfrage funktioniert, aber es gibt keinen Eintrag in's Syslog
    • Twonkymedia - wird in GUI und Syslog als "NOT ACTIVATED" angezeigt, obwohl der Twonky-Server läuft und auch wenn ein Stream aktiv ist
    • pyLoad - wird in GUI und Syslog als "NOT AVAILABLE" angezeigt, obwohl der pyLoad-Server und auch ein Download läuft


    Bei pyLoad liegt es an der Variable {QPKG_DIR}, die im Kontext des Scripts mit /share/MD0_DATA/.qpkg/Wait4PC befüllt ist, aber natürlich bei diesem Aufruf nichts findet:

    Code
    func_get_app_pyload () {
      bAppPYLOAD=
      if [ ! -f "${QPKG_DIR}/pyLoadCli.py" ]; then
        func_set_pyload_notavailable
      fi
    }


    Bei dem Fehler für Twonkymedia hab ich nicht herausgefunden, woran es liegt (ist bei fremdem, komplexen Code nicht so einfach ... ;) ) - bei meinem Script funktioniert es aber einwandfrei!


    Zwei weitere Fragen hab ich aber noch unabhängig

    • Ping - sollten die Ip-Adressen von pingbaren Hosts nicht in grün angezeigt werden?
    • Ich hab bei meinem Script derzeit 2 Einträge in der crontab (um an Wochenenden zu anderen Zeiten die Überprüfung zu starten) - da das über die GUI nicht geht, spricht was dagegen, wenn ich das weiterhin direct über die Crontab mache?


    Omar

    Hallo,


    Die Überprüfung, ob eine Squeezebox im LAN auf den LMS am NAS zugreift, geht mit Wait4PC nicht. Ich hab' mir deshalb ein Script gebastelt, das (unter anderem) diese Funktion abdeckt. (Siehe hier)
    Das Script ist aber weit nicht so komfortabel wie Wait4PC und setzt (minimale) Grundkenntnisse beim Umgang mit Shell-Scripts voraus.


    Omar

    So, wie verprochen der Code meines Shutdown-Scripts:


    Anmerkungen:

    • Das Script ist insofern modular aufgebaut, dass es aus einzelnen Funktionen besteht, die im Hauptteil einfach auskommentiert werden können. Die Funktionen überprüfen folgende Services:
      * Erreichbarkeit von Hosts im Netz anhand von Ping
      * Aktiver (eingeschalteter) Squeezebox-Player
      * Offene Sambasessions
      * Laufen pyLoad-Downloads
      * Wird über Twonky gerade gestreamt
    • So weit ich mich erinnern kann hatte ich beim pyLoad-Check am Anfang Schwierigkeiten, den Port einzutragen. Beim erstmaligen Aufruf von pyLoadCli.py wird der Port abgefragt, der Default-Wert war aber ein anderer als am Server (im Webclient Einstellungen / Allgemein / Remote) eingetragen.
    • Die Kommentare sind auf Englisch - alte Angewohnheit ... ;)


    Anmerkungen aus meinem Ursprungspost:

    Zitat von "Omar Hawk"
    • Wie schon erwähnt muss netcat installiert sein
    • Ich habe mich für ein paar Überprüfungen am Code von Eraser "orientiert"
    • Das Script muss manuell auf die Gegebenheiten (Netzwerk ...) angepasst werden
    • Der Eintrag in die Crontab muss selbst vorgenommen werden
    • Ein Log habe ich nur insofern realisiert, indem ich die Ausgabe in der Crontab auf ein File umleite


    Omar


    Zitat von "Eraser-EMC2-"

    Leider ist mir keine Möglichkeit bekannt, den Verbindungsstatus vom Twonky abzufragen.


    Ich glaube hier kann ich helfen! :D


    Ich habe in den letzten Monaten mein eigenes Shutdown-Script sukzessive um Überprüfungen für pyLoad und Twonky erweitert, und es funktioniert ausgezeichnet (nur nicht so komfortabel wie die Lösung von Eraser).


    Ich werd mal die privaten Verweise / Codeteil generalisieren und dann das Script hier posten.


    Omar

    So, wie versprochen hier das Script, dass auf meinem NAS überprüft, ob die für mich wichtigen Dienste laufen und ob das NAS heruntergefahren werden kann. Eine Kleinigkeit hat mich aber viel Zeit gekostet - im Crontab-Environment ist offensichtlich die PATH Variable für den User admin anders gesetzt als in einer "normalen" Shell-Session.


    Anmerkungen:

    • Wie schon erwähnt muss netcat installiert sein
    • Ich habe mich für ein paar Überprüfungen am Code von Eraser "orientiert"
    • Das Script muss manuell auf die Gegebenheiten (Netzwerk ...) angepasst werden
    • Der Eintrag in die Crontab muss selbst vorgenommen werden
    • Ein Log habe ich nur insofern realisiert, indem ich die Ausgabe in der Crontab auf ein File umleite


    Wie man sieht, fehlt also einiges von dem Komfort, den Eraser in seinem QPKG implementiert hat - mir fehlt aber das Know-How, um das ähnlich realisieren zu können (außerdem möcht ich nicht das Rad neu erfinden ...).


    Das Script ist auf meinem TS-459 Pro+ getestet und läuft einwandfrei!



    Omar

    So, mit ein bisschen Recherche habe ich jetzt selbst einen Lösungsansatz gefunden:
    http://forums.slimdevices.com/showthread.php?t=83738


    Dieses Script setzt aber die Installation von netcat über ipkg voraus, und hat außerdem den Nachteil, dass es nur für eine Squeezebox im Netz funktioniert.


    Daraufhin habe ich ein weiteres Script entdeckt, dass für eine beliebige Anzahl an SBs gebaut ist, aber zu viel Info ausgibt. Dieses Script kann aber IMO leicht angepasst werden, um eine Variable zu befüllen, die anzeigt, ob eine Squeezebox im Netz läuft:
    http://forums.slimdevices.com/showthread.php?t=81601
    Auch dieses Script setzt netcat voraus.


    Im ersten Beitrag wird auch noch auf ein Perl-Script verwiesen, dieses konnte ich aber (mit ca. 2 Minuten Aufwand ;) ) mit dem vom SqueezeBox Server installierten Perl nicht zum Laufen bringen.


    Stefan / Eraser: Es wäre toll, wenn du diese Überwachung auch in Wait4PC einbauen könntest (wobei mir natürlich klar ist, dass die Installation von ipkg als Voraussetzung dagegen spricht)!
    In der Zwischenzeit werde ich versuchen, selbst ein kleine Script zu basteln, dass überprüft, ob eine Squeezebox eingeschaltet im Netz hängt und ob es eine Samba-Connection gibt, und wenn beides nicht zutrifft das NAS herunterfährt. Sobald ich es fertig habe werde ich es hier posten.


    Omar

    Ich hab seit einer Woche ein TS-459 Pro +, und wollte mich gestern um das Thema Stromsparen kümmern. Ich bin sehr schnell auf dieses Script / QPKG gestoßen, das ich sehr interessant finde.


    Ich fürchte aber, dass es in meinem Fall nicht funktioniert, da ich auch noch eine Squeezebox Touch im Netz habe und nicht weiß, wie man festellen kann ob diese im Betrieb ist. Die Squeezebox kann nicht wirklich ausgeschaltet werden, sondern sie geht nur in Standby, bleibt dabei im Netz (ist dadurch pingbar) und hat auch ständig 2 Verbindungen mit meinem NAS offen (laut netstat, Port 3483 und 9000).


    Prinzipiell muss es zwar möglich sein, vom NAS aus den Status der Squeezebox zu erkennen (im Squeezebox Server wird angezeigt, ob die Squeezebox im Standby ist oder nicht), ich habe aber keine Ahnung wie man das scriptgesteuert ermitteln kann. Die einzige Lösung, die mir einfallen würde, wäre den Netztwerktraffic über mehrere Minuten zu monitoren, und wenn kein Traffic da ist, das NAS herunterzufahren … Aber ob und wie das zu realisieren ist habe ich noch nicht herausgefunden.


    Oder hat einer von euch dafür eine andere bessere Lösung?


    Omar