Probleme mit SPK Integration in DSM-Oberfläche

Status
Für weitere Antworten geschlossen.

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Hallo zusammen,
ich stehe gerade etwas auf dem Schlauch … und komme nicht weiter …:confused:

Ich habe mein Script "AvrLogger" in ein SPK gepackt. Das funktioniert alles soweit … nur wollte ich jetzt, zur Anzeige und späteren Konfiguration, auf der DSM Oberfläche ein Fenster öffnen bzw. integrieren.

Und da komme ich nicht weiter … vorbereitet sollte alles sein … aber es wird und wird keine Programverknüpfung erzeugt.

Vielleicht kann mir einer von euch weiterhelfen und mag einmal reinschauen … zu finden ist mein Program-Paket hier: AvrLogger

Ich bin für jeden Tipp dankbar!!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
Hi!

Ich hab jetzt nicht die Ruhe mich näher damit zu beschäftigen, jedoch kann ich dir einen Weg zeigen, wie du innerhalb der Protokolle unter /var/log/... nach Einträgen, Fehlern und sonstigen Meldungen von AvrLogger suchen kannst. Ich nutze diesen Einzeiler auch für unsere SPK's. Was mir aber beim installieren aufgefallen ist, ist die Tatsache, das das Paket im Paketzentrum als gestoppt angezeigt wird und es lässt sich auch nicht starten. Auch hast du in der index.cgi einen <?php.... ?> Aufruf, der ohne Init3rd_Party und php garnicht funktionieren dürfte.

Hier aber erstmal mein Einzeiler inkl. ein paar Vorbereitungen!

Meld dich als root auf der Konsole der DS an und erstelle dort eine leere Datei mit allem drum und dran...

Code:
touch /var/services/homes/admin/logfile.txt

chmod a+rx /var/services/homes/admin/logfile.txt

chown -c admin:users /var/services/homes/admin/logfile.txt

Hast du das, kannst du mittels nachfolgenden Befehlen die logfile.txt füttern. Nachfolgend sind die durch dich anzupassende Textstellen rot makiert. Hierbei kannt du mit Datum und Uhrzeit spielen, um die Suche einzugrenzen. Bei der Uhrzeit habe ich beispielhaft mal 18:1 eingegeben, womit dir alle Protokolleinträge von 18:10 bis 18:19 ausgegeben werden.

Führe beide Befehle nacheinander aus...

Code:
find /var/log/ -type f -exec egrep --color '.*([COLOR="#FF0000"]2018-08-06T18:1[/COLOR].*[COLOR="#FF0000"]AvrLogger[/COLOR]).*' {} \; -print >> /var/services/homes/admin/logfile.txt

Code:
find /var/log/ -type f -exec egrep --color '.*([COLOR="#FF0000"]2018/08/06 18:1[/COLOR].*[COLOR="#FF0000"]AvrLogger[/COLOR]).*' {} \; -print >> /var/services/homes/admin/logfile.txt

Anschließend kannst du dir die logfile.txt z.B. über den DSM oder einem Editor deiner Wahl anschauen... und staunen.

Kleiner Tipp noch... am besten deinstallierst du dein SPK nochmal... merkst dir die Uhrzeit und installierst es dann nochmal neu. Trage dann die Uhrzeit in den find-Befehl ein und du hast alle Protokolldaten der Installation. Du kannst dein SPK auch versuchen über die Browser-Adresszeile aufzurufen mit z.B. LOKALE-IP:5000/webman/3rdparty/AvrLogger/index.cgi ... was aber nicht funktioniert. Jedoch produziert das weitere Protokolleinträge unter /var/log/...

Wie gesagt, ich hab grad keine Ruhe um mich mit deinem Problem näher zu beschäftigen, trotzdem hoffe ich, dir ein wenig geholfen zu haben.

Tommes
 
Zuletzt bearbeitet:

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Hallo Tommes,
schon mal vielen Dank für deine ausführliche Antwort! Ja … das ist es was es so schwer macht … nicht zu wissen wo man schauen kann was schief läuft.
Ich werde deine „Einzeiler“ und Tipps ausprobieren … wäre doch gelacht wenn ich den Knoten nicht finde :)

Was mich nun wundert ist das bei dir das Paket als gestoppt angezeigt wird. Auf meiner DS2415+ und RS3617xs läuft es … bis auf die GUI:

AvrLogger - Status.png

Wenn du es noch nicht wieder deinstalliert hast und es nicht allzu viel Mühe machst … magst du vielleicht die Log-Datei „error“ posten?? :eek:

error - LogFile.png

Schon mal vielen Dank!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
Hab grad mein Laptop zugeklappt und hock jetzt mit meinem Tablet auf der Terasse und genieße die kühle Abendbiese... und ein kühles Bier! Falls ich später noch Lust habe, schau ich mir die error mal an und poste dir den Inhalt... ggf. per PN. Nagel mich aber bitte nicht auf heute fest...

Manchmal stimmen die Ordner/Dateirechte innerhalb es SPK‘s nicht... unter /scripts sollten die glaube ich auf 700 stehen... müsste ich aber auch alles mal nachschauen.

Tommes
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
… genieße die Briese und das kühle Blonde! ;)
Eilt nicht !

Wünsch dir noch einen netten Abend!
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
Bier ist alle und langsam wird es auch zu dunkel draußen :cool:

Also... erstmal eine kleine Korrektur... das SPK wird im Paketzentrum als "läuft" deklariert. Da hatte ich wohl einen kleinen Aussetzer. Dann habe ich mal mittels WinSCP die Rechte des Ordners /volume1/@appstore/AvrLogger neu gesetzt und siehe da... nach einem beherzten Tastendruck auf F5 des geöffneten DSM Browserfensters erschien das App-Symbol dann endlich. Es war also, wie von mir bereits vermutet, ein Rechteproblem, wenn auch nicht auf /scripts gemünzt.

Hier mal ein Screenshot von WinSCP (Rechte auf 755 - rekursiv)...

2018-08-06_Screenshot_01.PNG

... und hier der Beweis im DSM...

2018-08-06_Screenshot_02.PNG

Nur benötige ich für den Betrieb von AvrLogger wohl noch Init_3rd_Party und php, was ich aber beides nicht installiert habe. Ich musste schon den Benutzer-Home-Dienst einschalten, damit ich dein SPK überhaupt installieren kann. Das alles solltest du dem Benutzer mit auf den Weg geben... am besten vor der Installation. Paketabhängigkeiten lassen sich auch über die config steuern.

Ach ja, hier noch deine error...

Code:
2018.08.06 21:53:44 AvrLogger v1.0.0-001 Installed successfully.
2018.08.06 21:53:45 AvrLogger started ...
/volume1/@appstore/AvrLogger/AvrLogger.sh: line 158: (mvh*10)/(mh-1): division by 0 (error token is "(mh-1)")

Tommes
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Hallo Tommes,
erstmal Entschuldigung das ich mich jetzt erst melde … viel um die Ohren :eek:

und dann … vielen vielen Dank für deine Hilfe!!!!!!

Es war genauso wie du es schon geschrieben hattest, die Zugriffsrechte … ich setzte die nun entsprechend bevor ich das Paket erstelle.

Init_3rd_Party, php und / oder ein andere Pakete
werden nicht benötigt … in der “index.cgi“ hatte ich, quasi blind, etwas zusammen geschrieben um etwas zu haben, auf das ich erstmal aufbauen kann. Dabei sind php-Reste mit reingekommen.

Inzwischen wird die vom Programm erstellte SVG-Grafik im AvrLogger-Fenster angezeigt. (ohne php)
Thermal-Status.jpg

Benutzer-Home-Dienst
: Ja … ist mir bewusst und ist in den LiesMich.txt bzw. ReadMe.txt erwähnt. Ich habe es nun zusätzlich in der INFO mit aufgenommen. Kann man den Beschreibungstext eigentlich formatieren?

Ach ja … und die Fehlermeldung in deinem ERROR-Log hab ich auch behoben … ich hatte doch tatsächlich ignoriert das es auch DiskStations gibt, mir nur einer Festplatte. :eek:
Falls Interesse besteht … neue Version von AvrLogger habe ich online gestellt.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
Hab mir das überarbeitete SPK grade mal installiert und gestartet. Soweit sieht alles gut aus, auch konnte ich keine Fehler unter /var/log/... sowie in deiner error Datei finden. Die Installation als auch die Ausführung scheinen sauber durchzulaufen. Perfekt!

Jetzt werde ich das SPK aber wieder deinstallieren und den Benutzer-Home-Dienst wieder ausschalten, da ich diesen nicht brauche. Vielleicht findest du ja eine Möglichkeit - wenn das in deinem Sinne ist - einen anderen Speicherort zu definieren, denn nicht jeder hat den Benutzer-Home-Dienst und dazu noch den Benutzer "admin" aktiviert.

Weiterhin würde ich mir an deiner Stelle mal überlegen, ob dein SPK nicht bei z.B. CPHub (ich rühr für euch mal ein wenig die Werbetrommel, Jungs) besser aufgehoben wäre. Dann könntest du dein SPK auch über das DSM-Paketzentrum anbieten und man wäre immer "up to date" wenn du mal ein Update raushaust.

Noch eine Frage. Verhindert dein SPK, das sich die DS in den Ruhemodus begibt? Du zeichnest ja permanent Daten auf und das geht ja nur, wenn die DS nicht schläft, richtig? Ich hab's nicht getestet, aber falls dem so sein sollte, solltest du das dem Benutzer auch noch mitteilen.

Das nur so als Idee... weil mir das gleich ins Auge gefallen ist.

Viel Spaß noch mit deinem SPK und viele Downloads wünsche ich dir

Tommes
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Vielen Dank für’s nochmal testen. :D

Das mit dem Benutzer-Home-Service ist … hm … eine Notlösung. :eek: Ich hab bis jetzt keine vernünftige Idee wo ich die Konfig-Dateien ablegen kann, so dass sie vom Benutzer auch „ohne“ Terminal (PuTTy) änderbar sind. In Zukunft soll ja in der GUI die Konfiguration erfolgen … nur bis ich das umgesetzt habe wird es seine Zeit brauchen … Linux Bash-Script hab ich inzwischen ganz gut drauf … nur HTLM für die „index.cgi“ … ist Neuland. Solange wie ich das noch nicht umgesetzt habe … bräuchte ich halt einen Speicherort.
Du hast nicht zufällig eine Idee / Empfehlung wo ich derweil die Konfig-Dateien und die SVG-Grafiken nebst Archivierung ablegen kann :confused:?
Ich glaub, ich habe schon mal eine Abfrage für einen Speicherort in anderen Programm-Paketen gesehen … wenn das funktioniert / geht … ist das ein möglicher Weg?

CPHub hab ich schon ins Auge gefasst … was mir daran gefällt ist, das anders als auf meinem aufgesetztem SSPKS-Server, Change-Logs und ähnliches gleich mit dem Programm-Paket angezeigt werden. Solange ich keine Lösung für den Speicherort habe … warte ich noch mit CPHub … aber dann kommt es ganz sicher da hin :cool:.

Ruhemodus … ja, ich fürchte es ist so wie du vermutest :( … die ausgelesenen Werte werden, je nach Einstellung, alle 1 bis 6 Sekunden in ein File geschrieben … und in der Default-Konfiguration alle 10Min. die SVG-Grafik erzeugt. Ich muss mal schauen ob ich eine verlässliche Möglichkeit finde die Log-Werte erst bei einem Stopp des Paketes zu schreiben, was eine Shutdown / Restart der DiskStation mit einschließt.

Deinen Rat, den Benutzer auf den dann verhinderten Ruhemodus hinzuweisen, werde ich definitive in der INFO mit aufnehmen. Danke für den Input!
Genau deshalb liebe ich das Forum! Man kann selber nicht an alles denken und ich bin immer dankbar für Ratschläge und Hinweise.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Mir fällt noch etwas ein … vielleicht kann mir da jemand weiterhelfen.

Ab DSM 6.0 kann man in der INFO einen Field Namen: „exclude_arch“ eintragen. Nun weiß ich, dass mein AvrLogger keine vernünftigen Werte in einer VirtualDSM oder DDSM liefert …. Was müsste ich da eintrage um gleich zu verhindern, das dort mein AvrLogger gar nicht erst angeboten bzw. installiert wird?

Ich fange das zwar im „preinst“-Script ab … reicht das?
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
In Zukunft soll ja in der GUI die Konfiguration erfolgen … Linux Bash-Script hab ich inzwischen ganz gut drauf … nur HTLM für die „index.cgi“ … ist Neuland.

Bei mir ist es genau umgekehrt... HTML und CSS, früher auch mal php und MySQL, sind eher meine Steckenpferde, BASH ist für mich ein K(r)ampf, vor allem dann, wenn reguläre Ausdrücke oder sonstige Hieroglyphen in sed, cat oder was weiß ich noch alles daherkommen. Da bin ich echt froh, das ich das meinem Body PsychoHH auf Auge drücken kann, der sowas im Schlaf runterbeten kann. Somit sind wir schon ein ideales Team mit klar definierten Arbeitsbereichen... aber ich will dir keine lange Nase machen.

Ein bisschen was verstehe ich durchaus von BASH und aktuell bin ich auch dabei, mir eine neue SPK-Umgebung zu bauen, die mir quasi als Grundgerüst dienen soll. Wer weiß, vielleicht lasse ich dir das ja irgendwann mal zukommen... irgendwann! Darin wird es dann auch ein komplettes Formulardesign geben, welches alle übertragenen Werte per GET in eine temporäre Datei speichert, welche sich drüber weiterverarbeiten lassen. Also quasi genau das, was du suchst und brauchst.

Wie gesagt... vielleicht bin ich irgendwann ja mal soweit, das ich das der Öffentlichkeit zukommen lassen kann. Die Zeit wird’s zeigen.

Tommes
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Gefällt mir im Ansatz auch sehr gut, das kann man ja auch noch gigantisch erweitern, auf alle Fälle ist eine gute, funktionierende Visualisierung. Selbst installiert habe ich es noch nicht.
Mein Vorschlag wäre, aktivierter Admin und vorhandenes Home-Verzeichnis im Programm abzutesten, wenn es tatsächlich nötig ist. Auch lassen sich im Installationsprozess Hinweis-Popups anzuzeigen, was eher wahrgenommen wird als ein Hinweis in der INFO.

MfG Matthieu
 

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Ab DSM 6.0 kann man in der INFO einen Field Namen: „exclude_arch“ eintragen. Nun weiß ich, dass mein AvrLogger keine vernünftigen Werte in einer VirtualDSM oder DDSM liefert ….
Kennst du die Developer-Seiten von Synology?
https://www.synology.com/de-de/support/developer#tool
Exclude_Arch: https://originhelp.synology.com/developer-guide/synology_package/INFO_optional_fields.html
Die virtuellen heißen:
synology_kvmx64_virtualdsm
synology_dockerx64_dockerdsm
(Hab ich mir jetzt ergoogelt, scheint bei Synology nicht zu stehen)

MfG Matthieu
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Hallo Matthieu,
SUPER!!! Habe ich gleich mal in die INFO eingetragen!

Ja, die Developer-Seiten kenne ich … lese auch fleißig in dem Guide … aber wie mit allem … es steht vieles nicht drin.

Ich beschäftige mich jetzt intensive mit den „WIZARD_UIFILES“ … die hatte ich bis jetzt noch nicht so auf meinem Radar … das Gerüsts des Paketes hatte bis jetzt Vorrang ;-) Was ich bis jetzt darüber gelesen habe … könnte alle Punkt erschlagen die bisher hier genannt wurden.

... aktivierter Admin und vorhandenes Home-Verzeichnis im Programm abzutesten

Mache ich bereits im „preinst“-Script und zusätzlich in AvrLogger.

Ich habe jetzt viele neue Inputs und Ideen bekommen … jetzt muss ich das nur noch umsetzen :-D

Gruß, BigRonin
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Die virtuellen heißen:
synology_kvmx64_virtualdsm
synology_dockerx64_dockerdsm

Nach etlichen Versuchen und mehrmaligem bemühen von Tante Google ... :
Die virtuellen heißen: dockerx64 kvmx64

Damit hat es dann funktioniert :)
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Hallo nochmal … ich bin gerade dabei in AvrLogger die Unterstützung für die SynoToken einzubinden. Dazu habe ich check_appprivilege.inc.php von QTip eingebunden.
Das scheint auch sauber zu funktionieren, denn ich erhalte einen Token und den angemeldeten Benutzer zurück.

Jedoch taucht bei jedem Aufruf in dem ERROR-Log ein Eintrag auf:

Rich (BBCode):
[Line 259] Exec WebAPI:  api=SYNO.Core.Desktop.Initdata, version=1, method=get, param={}

Weder in der index.cgi noch in check_appprivilege.inc.php, bzw. in der token.php gibt es eine Zeile 259!

Kann / soll ich das ignorieren?

Aktuelles Paket liegt auf meinem Server. Jetzt „OHNE“ erzwungenen „Benutzer-Home-Dienst“ und mit ordentlichem Dialog während der Installation :eek:.
… vielleicht mag ja noch mal jemand schauen, ob ich im Aufruf von check_appprivilege.inc.php, bzw. token.php einen Fehler eingebaut habe.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
Wenn ich https://MeineIP:SynoPort/webman/3rdparty/AvrLogger/index.cgi im Browser aufrufe und keiner ist angemeldet, oder ein "nicht-Admin" dann kommt die "Syno-Fehlerseite" : Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden.

BIn ich hingegen als Admin angemeldet kommt meine App. Das ist nach meinem Verständnis soweit ok.

Nachtrag: Hab gerade die Gegenprobe gemacht ... wenn ich die Abfrage rausnehme hab ich immer Zugriff auf die App :)
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.748
Punkte für Reaktionen
1.657
Punkte
314
Jedoch taucht bei jedem Aufruf in dem ERROR-Log ein Eintrag auf:

Rich (BBCode):
[Line 259] Exec WebAPI:  api=SYNO.Core.Desktop.Initdata, version=1, method=get, param={}

Also bei mir taucht der Fehler nicht auf. Und der SynoToken ist ja u.a. dafür da, das nur berechtigte und am System angemeldete Benutzer deine App benutzen dürfen. Von daher läuft das bei dir schon, wie es soll.

(Später) Nachtrag:
Hab grade einen Fehler in deiner Index.cgi entdeckt, dort steht in Zeile 31...

Code:
    for del in `ls $dst`; do[COLOR="#FF0000"]ä[/COLOR]

... da ist wohl ein ä zuviel.

Tommes
 
Zuletzt bearbeitet:

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
131
Punkte
89
… Danke dass du nochmal geschaut hast!

Hab grade einen Fehler in deiner index.cgi entdeckt, dort steht in Zeile 31...

Hm …. Gerade mal geschaut … im Paket vom 14.8.2018 15:53 ist kein „ä“ … keine Ahnung wie es bei dir da gekommen ist … hätte ja auch dazu führen müssen das die index.cgi an der Stelle mit einem Fehler abbricht.

Also bei mir taucht der Fehler nicht auf.

Wenn du dich auf die Log-Datei „error“ beziehst … dann ist klar das die Meldung bei dir nicht auftaucht … ich habe das „Redirect“ auf „nach“ dem Aufruf verschoben damit mir das Log-File nicht unnötigerweise damit gefüllt wird. Verschiebst du „exec 2>> "$ERROR"“ vor den Aufruf der „token.php“ dann erscheint die Meldung wieder im Log-File.

Rich (BBCode):
exec 2>> "$ERROR"

# --- Check access permissions überprüfen (Syno-Token) ...
login=$(php -f "${workingDir}lib/token.php") || exit

Ich kann damit leben, hab ja auch einen „Fix“ für mich dass die Meldung nicht im Log-File landet. Wollte halt nur gefragt haben, ob ich soweit alles richtig gemacht habe.

Gruß, BigRonin
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat