SMART-Tool als 3rd-party-apps

Status
Für weitere Antworten geschlossen.

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Mit
smartctl -d marvell -a /dev/sda
bekomme ich ein Ergebnis

Aber löst das mein Problem?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Aber löst das mein Problem?
Vermutlich noch nicht ganz. Der Division by Zero Fehler kommt wohl von tps und nicht von smartctl
Code:
tps config
gemacht und alle Werte gesetzt? Als Pfad für den Image Folder würde ich dir /usr/syno/synoman/phpsrc/diskhealth empfehlen.
Und diese
Creation of the Temperature Graph 597x193
Bestätigung am Ende von tps config hast du erhalten? Wenn du diese Bestätigung hast dann schau im Verzeichnis, das du bei tps conf angegeben hast nach wie genau das Bild heisst, das da abgelegt wurde
Dann wieder zur diskhealth.cgi
Code:
#!/bin/ash
/opt/bin/tps
cat <<EOT
Content-type: text/html

<html><head><title>DiskHealth</title></head><body>
<h2>DiskHealth</h2>
<style>body{font:11px Arial;background-color:#ddf;}</style>
<img src="tps-XXX.png">
<hr><h3>/dev/hda</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sda|sed '1,3d')</pre>
<hr><h3>/dev/hdb</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sdb|sed '1,3d')</pre>
</body></html>
EOT
XXX ist per Default der Hostname deiner DS und smartctl sollte unter /opt/sbin/ liegen. Afaik werden alle Bestandteile von ipkg Paketen unter /opt installiert

Gruss

tobi
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Die Datei /etc/tps.conf ist leer.
Auch weiterhin nach Angabe des Ordners für das Bild erhalte ich die Fehlermeldung "division by zero", die Meldung "Creation of the Temperature Graph 597x193" habe ich nicht.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Auch weiterhin nach Angabe des Ordners für das Bild erhalte ich die Fehlermeldung "division by zero" ...
Der Pfad, den du angibst existiert und ist korrekt? Es könnte ggf helfen die Files von tps unter /etc mal zu löschen und dann tps start aufzurufen.
Code:
rm /etc/tps.*
tps start
Jetzt sollten nochmals die Werte angegeben werden z.B.
Code:
yes
/usr/syno/synoman/phpsrc/diskhealth
5
Ich hoffe es hilft dir was

Gruss

tobi
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Am Ende erhalte ich jetzt:
/bin/tps: /bin/tps: 208: /nin/killall: not found
Script halted
Script is starting!!

Also kein Division by zero mehr.
Aber die 3rd party-app wird immer noch nicht gefunden.
Was für ein Bild soll ich jetzt in der diskhealth.cgi eintragen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Was für ein Bild soll ich jetzt in der diskhealth.cgi eintragen?
Du hast ja den Pfad an tps config übergeben. Jetzt gehst du mal in das angegebene Verzeichnis schauen unter welchem Namen das Bild abgelegt wurde. Diesen Namen gibst du dann in diskhealth.cgi als src für das Bild an
Und bitte poste mal das Ergebnis des folgenden Befehls
Code:
ls -all /usr/syno/synoman/phpsrc/diskhealth
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Ergebnis nach Eingabe von tps:
/bin/tps
awk: cmd. line:1: Division by zero
ERROR: conversion of '-' to float not complete: tail '-'
Creation of the Temperature Graph 597x193

Die Seite wird in 3rd-party-apps immer noch nicht gefunden.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@baeumer
In diesem Thread auf Seite 3 steht was dazu und auch mögliche Lösungsvorschläge http://www.synology-forum.de/showthread.html?t=2124&page=3
Ich selber benutze eine diskhealth.php und nicht die "originale" cgi, drum weiss ich auch nicht konkret welcher der Tipps unter dem Link hilft. Aber da hatte jemand die gleiche Fehlermeldung wie du

Gruss

tobi
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
tps scheint zu gehen, erhalte nach Eingabe von tps die Meldung
/opt/bin/tps
Creation of the Temperature Graph 597x193


Aber dennoch bei Klick auf diskhealth in third-party-applications Meldung
Es tut uns Leid, die von Ihnen gesuchte Seite konnte nicht gefunden werden.

Hier der Inhalt von /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi:
#!/bin/ash
/opt/bin/tps >/dev/null
cat <<EOT
Content-type: text/html

<html><head><title>DiskHealth</title></head><body>
<h2>DiskHealth</h2>
<style>body{font:11px Arial;background-color:#ddf;}</style>
<img src="tps-DiskStation.png">
<hr><h3>/dev/hda</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sda|sed '1,3d')</pre>
<hr><h3>/dev/hdb</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sdb|sed '1,3d')</pre>
</body></html>
EOT


Und der Inhalt von /usr/syno/synoman/webman/3rdparty/diskhealth/application.cfg:
text = diskhealth
description = diskhealth
type = embedded
path = /phpsrc/diskhealth/diskhealth.cgi


Die Datei /usr/syno/synoman/phpsrc/diskhealth/tps-DiskStation.png ist vorhanden und zeigt das Gitter für den Temperaturbalken und die Temperaturkurve, sieht gut aus.

Sowohl bei application.cfg als auch bei diskhealth.cgi habe ich mit chmod 755 das Attribut geändert. Ich komme nicht weiter...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hier der Inhalt von /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi:
#!/bin/ash
/opt/bin/tps >/dev/null
cat <<EOT
Content-type: text/html

<html><head><title>DiskHealth</title></head><body>
<h2>DiskHealth</h2>
<style>body{font:11px Arial;background-color:#ddf;}</style>
<img src="tps-DiskStation.png">
<hr><h3>/dev/hda</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sda|sed '1,3d')</pre>
<hr><h3>/dev/hdb</h3>
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sdb|sed '1,3d')</pre>
</body></html>
EOT

Vielleicht kannst du diese Datei mal im vi anschauen. Wenn da aus irgendeinem Grunde an den Zeilenenden so ^W sind, dann müssen die weggelöscht werden, weil sonst das Skript nicht ausgeführt werden kann. Das ist der Unterschied der Zeilenenden zwischen Linux und Windows ...
Außerdem mit diese Datei Ausführungsrechte haben (also chmod 777 auf die Datei machen)

itari
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Bitte schön:
drwxr-xr-x 2 root root 4096 Sep 5 22:03 .
drwxr-xr-x 8 root root 4096 Sep 5 22:01 ..
-rwxrwxrwx 1 root root 436 Sep 5 22:02 diskhealth.cgi
-rwxrwxrwx 1 root root 24574 Sep 6 08:30 tps-DiskStation.png


Gruß

Matthias
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
-rwxrwxrwx 1 root root 436 Sep 5 22:02 diskhealth.cgi
diese Datei ist NICHT ausführbar!! Da müsste vorne x statt - stehen. Also mach mal
Code:
# chmod +x /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi

Gruss

tobi
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Geht nicht. Es bleibt dabei, daß die Seite nicht gefunden wird. Ich verzweifle... :confused:

Ergebnis:
-rwxrwxrwx 1 root root 436 Sep 5 22:02 /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi

Eine Meldung erhalte ich nach chmod nicht. Ich bin in Telnet als root angemeldet.

Warum?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Matthias, hast du die Zeilenenden mit dem vi geprüft? Andere Editoren tun sich da schwer.

itari
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
diese Datei ist NICHT ausführbar!! Da müsste vorne x statt - stehen. Also mach mal
Code:
# chmod +x /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi

Das - (minus-Zeichen) in der ersten Spalte steht für den Datei-Typ "normale Datei"; ansonsten gibt es da noch d (directory), l (link), c (character device), b (block device), s (socket) und p (named pipe), wenn ich mich recht erinnere.

Insofern ist die Datei von Matthias bereits richtig.

itari
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Mit vi erhalte ich folgendes Ergebnis:

Rich (BBCode):
#!/bin/ash^M
/opt/bin/tps^M
cat <<EOT^M
Content-type: text/html^M
^M
<html><head><title>DiskHealth</title></head><body>^M
<h2>DiskHealth</h2>^M
<style>body{font:11px Arial;background-color:#ddf;}</style>^M
<img src="tps-DiskStation.png">^M
<hr><h3>/dev/hda</h3>^M
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sda|sed '1,3d')</pre>^M
<hr><h3>/dev/hdb</h3>^M
<pre>$(/opt/sbin/smartctl -d marvell -iAH /dev/sdb|sed '1,3d')</pre>^M
</body></html>^M
EOT
~
~
~
~
~
~
~
~
~
- /usr/syno/synoman/phpsrc/diskhealth/diskhealth.cgi 1/14 7%

Also Zeilenende = ^M
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
sagte ich doch, hatte nur ^W statt ^M geschrieben. Lauf im vi mit dem Cursor auf das Ende der Zeilen und drück 'x'. Dann wird das gelöscht. Am Ende mit <ESC>:wq abspeichern.

Diese ^M sind das Problem. Die Shell, die ja das Skript ausführt, mag dies nicht.

Alles klar?

itari
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
:):) Es geht! :):)

Aber woran liegt das mit ^M?
Ich habe die Datei mit Notepad++ erstellt.
Vielen Dank
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
eventuell hast beim Abspeichern nicht UNIX-Typ ausgewählt gehabt ...

aber freu dich, dass es nu geht :D

itari
 
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