Anzeige der wichtigsten Systeminformationen im Disk Station Manager

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Die folgende Anleitung zeigt, wie man eine Anzeige der wichtigsten Systeminformationen als .cgi-Skript in den Disk Station Manager als 3rd-party-application einbaut.

Achtung: Wie immer erfolgen alle Änderungen mit telnet-Aufruf auf der DS und auf eigene Kappe

Voraussetzung: Die Option HTTPS-Verbindung ist aktiv, d. h. auf den Web Station Manager wird mit https://IP_der_DS:5001 zugegriffen.

(1) Ein Verzeichnis anlegen: /usr/syno/synoman/phpsrc/systeminfo und sich in das neue Verzeichnis stellen.

(2) Die Datei info.cgi erstellen mit folgendem Inhalt (Achtung, die erste Zeile ist sehr wichtig!) :

Rich (BBCode):
#!/bin/ash
echo "Content-type: text/html"
echo ""
echo "<html><head><title>System-Info</title></head><body>"
echo "<style>body{font:11px Arial;}h3{color:#88F;}</style>"
echo "<h2>General system information for host $(hostname -s)</h2>"
echo "<div style='height:500px;overflow:auto'>"
echo "<h3>CPU</h3>"
echo "<pre>"
echo "$(cat /proc/cpuinfo) </pre>"
echo "<h3>Memory</h3>"
echo "<pre>"
echo "$(cat /proc/meminfo)"
echo ""
echo "$(free)</pre>"
echo "<h3>Flash-Layout</h3>"
echo "<pre>"
echo "$(cat /proc/mtd) </pre>"
echo "<h3>Partitions</h3>"
echo "<pre>"
echo "$(cat /proc/partitions)</pre>"
echo "<h3>Swap</h3>"
echo "<pre>"
echo "$(cat /proc/swaps)</pre>"
echo "<h3>Devices (Major-#)</h3>"
echo "<pre>"
echo "$(cat /proc/devices)</pre>"
echo "<h3>File-Systems</h3>"
echo "<pre>"
echo "$(cat /proc/filesystems)</pre>"
echo "<h3>RAID-Volumes</h3>"
echo "<pre>"
echo "$(cat /proc/mdstat)"
echo ""
echo "$(for m in /dev/md?; do echo ""; mdadm --query --detail $m; done)</pre>"
echo "<h3>mounted Volumes</h3>"
echo "<pre>"
echo "$(cat /proc/self/mounts)</pre>"
echo "<h3>File-System Usage</h3>"
echo "<pre>"
echo "$(df)</pre>"
echo "<h3>Installed Linux-Version</h3>"
echo "<pre>"
echo "$(cat /proc/version)</pre>"
echo "<h3>Installed Modules</h3>"
echo "<pre>"
echo "$(cat /proc/modules)</pre>"
echo "<h3>User</h3>"
echo "<pre>"
echo "$(cat /etc/passwd)"
echo ""
echo "$(who)</pre>"
echo "<h3>Processes</h3>"
echo "<pre>"
echo "$(ps)</pre>"
echo "<h3>Network Interfaces</h3>"
echo "<pre>"
echo "$(ifconfig eth0;ifconfig eth1)</pre>"
echo "<h3>Network Ports</h3>"
echo "<pre>"
echo "$(netstat -na)</pre>"
echo "<h3>NFS Mounts</h3>"
echo "<pre>"
echo "$(showmount)</pre>"
echo "<h3>Samba</h3>"
echo "<pre>"
echo "$(smbstatus -vS)</pre>"
echo "</div></body></html>"

(3) Ein Verzeichnis anlegen: /usr/syno/synoman/webman/3rdparty/systeminfo. In diesem Verzeichnis die Datei application.cfg erfassen:

text = systeminfo
description = systeminfo
type = embedded
protocol = https
adress = localhost
port = 5001
path = /phpsrc/systeminfo/info.cgi

(4) Disk Station Manger aufrufen & testen


Wer etwas vermisst oder zusätzlich angezeigt bekommen möchte, kann entweder das Skript selbst erweitern oder hier posten - ich bau das dann ein.

Und um die Frage gleich vorweg zu nehmen, ob man auch Werte an ein .cgi-Skript übergeben kann: ja!

... skript.cgi?xyz

im Skript: echo $1 oder: echo $QUERY_STRING
 

andre

Benutzer
Mitglied seit
21. Feb 2008
Beiträge
35
Punkte für Reaktionen
0
Punkte
6
Hallo itari,

ich habe es mal nach deiner Anleitung versucht einzubinden noch leider bekomme ich immer beim Aufruf die Meldung das die Seite nicht gefunden werden kann.
Kannst du mir helfen?
Ich habe es 3 mal nach deiner Anleitung kontrolliert.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ich glaube ich habe in der application.cfg einen Tippfehler :rolleyes:

adress = localhost <- falsch

address = IP_deiner_DS <- richtig
 
Zuletzt bearbeitet:

andre

Benutzer
Mitglied seit
21. Feb 2008
Beiträge
35
Punkte für Reaktionen
0
Punkte
6
Stimmt, ist mir aber echt nicht aufgefallen.

Geht aber trotzdem noch nicht :-(
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ok ... dann testen wir mal, ob die Apache-Einstellungen stimmen:

(1) grep DocumentRoot /usr/syno/apache/conf/httpd.conf-sys. Da muss nun eine Zeile ohne # erscheinen, die so aussieht:

DocumentRoot "/usr/syno/synoman"

Wenn nein zu Schritt 5 - wenn ja, dann:

(2) stell dich ins Verzeichnis /usr/syno/synoman/phpsrc/systeminfo

(3) echo "huhu" >index.html

(4) Browseraufruf mit: https://Ip_deiner_DS:5001/phpsrc/systeminfo/index.html

Ergebnis auf der Webseite sollte sein: huhu

Wenn nein, dann auch noch folgendes ausführen:

(5) grep Alias /usr/syno/apache/conf/httpd.conf-sys.

und Ergebnisse von (1) und (5) posten, die bei dir angezeigt werden
 

andre

Benutzer
Mitglied seit
21. Feb 2008
Beiträge
35
Punkte für Reaktionen
0
Punkte
6
ok, ich habe das mal alles durchgespielt:

zu 1:

grep DocumentRoot /usr/syno/apache/conf/httpd.conf-sys
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/usr/syno/synoman"
# This should be changed to whatever you set DocumentRoot to.
# access content that does not live under the DocumentRoot.

zu 5:
grep Alias /usr/syno/apache/conf/httpd.conf-sys
# Alias: Maps web paths into filesystem paths and is used to
# Alias /webpath /full/filesystem/path
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#ScriptAlias /cgi-bin/ "/usr/syno/apache/cgi-bin/"
AliasMatch ^/webfm/cgi/download/(.*)/.+ "/usr/syno/synoman/webfm/cgi/$1"
# "/usr/syno/apache/cgi-bin" should be changed to whatever your ScriptAliased
# To use CGI scripts outside of ScriptAliased directories:


Wenn ich auch Systeminfo klicke scheint auch schon "was" zu funktionieren. Es kommt nämlich die Abfrage nach den Zertifikat nur danach dann gleich der 404
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ok mit (1) und (5) ... dann bitte 2-4 ausprobieren

eventuell auch noch mal den Eintrag address ändern auf address = DNS_Name_der_DS (also so, wie du auch den Disk-Station-Manager aufrufst, bzw. dein Zertifikat angelegt hast, wenn du eins selbst angelegt hast)
 

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Ich bekomme die Systeminfo auch nicht zum laufen auf einer DS207+
 

Henryk42

Benutzer
Mitglied seit
11. Mai 2007
Beiträge
135
Punkte für Reaktionen
0
Punkte
16
ok mit (1) und (5) ... dann bitte 2-4 ausprobieren

eventuell auch noch mal den Eintrag address ändern auf address = DNS_Name_der_DS (also so, wie du auch den Disk-Station-Manager aufrufst, bzw. dein Zertifikat angelegt hast, wenn du eins selbst angelegt hast)

Hallo itari,

komme auch nicht weiter, habe 1-5 ausgeführt 1+5 wie bei andre

2-4 webseite mit huhu wird erstellt und kann ich sehen.
Habe eine CS 406 FW 637
Habe das script mit chmod 755 auch ausfürbar gemacht,
alles andere mit Linuxbefehlen mkdir und touch erstellt, ohne Parameter übergabe.
Den Text habe ich aus der zwischenablage in vi übernommen.

Was meinst du mit erste Zeile ist wichtig ? Lehrzeile ? oder Code: ?

Habe keine weiteren Modifikationen, außer den streamripper noch über Telnet zu bedienen, in der CS gemacht.

mfg
Henryk42
 

Anhänge

  • Systeminfo_3rdparty.jpg
    Systeminfo_3rdparty.jpg
    36,6 KB · Aufrufe: 945

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@Henryk42,

mit erster Zeile meinte ich: #!/bin/ash und auch die dritte Zeile ist wichtig und darf keinesfalls fehlen : echo ""

wenn die Webseite mit "huhu" funktioniert, dann einfach mal im Browser das Skript direkt aufrufen ohne Disk Station Manager:

https://name_DS:5001/phpsrc/systeminfo/info.cgi

was passiert?


@DSL-Hexe

bitte probiere das mit der Datei index.html (huhu) und dem direkten Aufruf wie oben auch aus und sag was passiert.


@all

Trolli hat festgestellt, dass man in der application.cfg die beiden Zeilen 'address' und 'port' rauswerfen kann ...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@DSL-Hexe,

erfass mal das folgendes Skript test.cgi in dem Verzeichnis systeminfo:

Rich (BBCode):
#!/bin/ash
echo "Content-type: text/html"
echo ""
echo "huhu"

und ruf mal auf mit: https://Ip_DS:5001/phpsrc/systeminfo/test.cgi

Geht das?
 

Henryk42

Benutzer
Mitglied seit
11. Mai 2007
Beiträge
135
Punkte für Reaktionen
0
Punkte
16
@Henryk42,

mit erster Zeile meinte ich: #!/bin/ash und auch die dritte Zeile ist wichtig und darf keinesfalls fehlen : echo ""

wenn die Webseite mit "huhu" funktioniert, dann einfach mal im Browser das Skript direkt aufrufen ohne Disk Station Manager:

https://name_DS:5001/phpsrc/systeminfo/info.cgi

was passiert?


@DSL-Hexe

bitte probiere das mit der Datei index.html (huhu) und dem direkten Aufruf wie oben auch aus und sag was passiert.


@all

Trolli hat festgestellt, dass man in der application.cfg die beiden Zeilen 'address' und 'port' rauswerfen kann ...

Habe den Kommentar von Trolli gerade gefunden.
habe aus der application.cfg adress und port rausgeworfen.

Ob mit oder ohne Port gleiche Anzeige, siehe Bild.

Ich habe alles extern auf der CS ausgeführt, von Telnetverbindung Ordner erstellen bis zum Test des scriptes.


mfg
Henryk42
 

Anhänge

  • Systeminfo_3rdparty_Webseite.jpg
    Systeminfo_3rdparty_Webseite.jpg
    7,5 KB · Aufrufe: 278

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Bei test.cgi kann er keine Seite finden das gleiche Bild wie bei Henry im letzten Post.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Es geht :D:D:D Es geht

chmod 755 info.cgi war der Schlüssel.

Danke Danke Vielen Dank:D:D
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
SUPER !!! Dann viel Spaß mit der Anzeige.
 

Henryk42

Benutzer
Mitglied seit
11. Mai 2007
Beiträge
135
Punkte für Reaktionen
0
Punkte
16
Dann müsste das info.cgi doch eigentlich auch mit dem Direkt-Aufruf gehen - oder?

Bei mir auch ja es geht super

DANKE


chmod 755 hatte ich schon vorher gemacht.
habe die info.cgi neu erstellt, vielleicht habe ich vorher mit dem vi etwas versaut.

Jetzt gehts.
 
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