#!/bin/sh
#
# get systemp
#
DSIP="" # IP der Diskstation
USER="" # Username für Login
PASS="" # Passwort für Login
RESULT="/tmp/sysinfo" # temporäre Datei für Ergebnis
SYSTEMP="" # Variable die im Anschluss die Systemtemperatur enthält
#------------------------------------------------------------------------------
/usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --save-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/login.cgi?username=${USER}&passwd=${PASS}"
/usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --load-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/SystemInfoApp/SystemInfo.cgi?query=overview"
SYSTEMP=`/bin/cat $RESULT | /bin/grep \""systemp\"" | /usr/bin/cut -d "," -f1 | /usr/bin/cut -d ":" -f2 | /bin/sed 's/^ *//g`
echo $SYSTEMP
rm -f $RESULT
exit 0
Der DSM liest es genau mit diesem Kommando SystemInfo.cgi?query=overview aus. Er schickt eine Anfrage und erhält die Werte im JSON-Format zurück. Der eigentliche Ausleseteil ist in SystemInfo.cgi enthalten, aber nicht im Klartext lesebar, da kompiliert. Da du es von der Shell aus aufrufst, muss man dem CGI noch die Anmeldeinformationen mitgeben, sonst ist man nicht berechtigt. Ob und mit welchem Commandline-Tool es Synology innerhalb der SystemInfo.cgi ausliest oder es auf direktem Weg durchführt, wäre noch interessant. Womöglich wird Synology dir das nicht verraten, aber hoffen kann man jaDas Script ja ist gut und schön, aber da den Benutzernamen und Passwort in Klartext reinzuschreiben ist nicht wirklich elegant.
Das DSM muss es doch auch irgendwie auslesen. Leider hat Synology noch nicht darauf geantwortet, habe das schonmal nachgefragt.
Sehr geehrter Herr xxxx,
es hat leider ein wenig gedauert, bis wir Ihnen eine Lösung anbieten können. Ich bitte dies zu entschuldigen und freue mich, Ihnen einen Weg vorzustellen:
Unser mantool ist in der Lage, die Systemtemperatur aufzunehmen (SYNOIO_GET_TEMPERATURE)
Auf einer DS, wo noch kein DSM installiert ist, reicht der folgende Befehl, um die Systemtemperatur zu erhalten:
mantool -temperature
Um die Systemtemperatur für ein DSM-System zu erhalten, erklärt die folgende Anleitung, wie man die mantool.glibc ausliest:
mount 192.168.1.181:/synosrc/ds.6281/ /mnt ; cp /mnt/source/juniorinstaller/scemd.glibc /mantool ; umount /mnt;
Die angehängte Datei ist die mantool.glibc binary. Sie enthält:
mantool.6180
mantool.6281
mantool.824x
mantool.853x
mantool.854x
mantool.bromolow
mantool.ppc
mantool.x64
Der Befehl ist für die unterschiedlichen Plattformen unterschiedlich und sie müssen den Entsprechenden für die Plattform Ihrer eigenen DiskStation auswählen, z.B.:
mantool.6281 -temperature
Damit sollte es nun klappen.
mit freundlichen Grüßen, Dennis Schellhase
Synology GmbH
DiskStation> /root/DSMStatusmail.sh
BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary.
Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...
Search for PATTERN in FILEs (or stdin)
Options:
-H Add 'filename:' prefix
-h Do not add 'filename:' prefix
-n Add 'line_no:' prefix
-l Show only names of files that match
-L Show only names of files that don't match
-c Show only count of matching lines
-o Show only the matching part of line
-q Quiet. Return 0 if PATTERN is found, 1 otherwise
-v Select non-matching lines
-s Suppress open and read errors
-r Recurse
-i Ignore case
-F PATTERN is a literal (not regexp)
-E PATTERN is an extended regexp
-m N Match up to N times per file
-A N Print N lines of trailing context
-B N Print N lines of leading context
-C N Same as '-A N -B N'
-e PTRN Pattern to match
-f FILE Read pattern from file
/root/DSMStatusmail.sh: line 22: Temperature_Celsius: not found
BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary.
Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...
Search for PATTERN in FILEs (or stdin)
Options:
-H Add 'filename:' prefix
-h Do not add 'filename:' prefix
-n Add 'line_no:' prefix
-l Show only names of files that match
-L Show only names of files that don't match
-c Show only count of matching lines
-o Show only the matching part of line
-q Quiet. Return 0 if PATTERN is found, 1 otherwise
-v Select non-matching lines
-s Suppress open and read errors
-r Recurse
-i Ignore case
-F PATTERN is a literal (not regexp)
-E PATTERN is an extended regexp
-m N Match up to N times per file
-A N Print N lines of trailing context
-B N Print N lines of leading context
-C N Same as '-A N -B N'
-e PTRN Pattern to match
-f FILE Read pattern from file
/root/DSMStatusmail.sh: line 24: Temperature_Celsius: not found
BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary.
Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...
Search for PATTERN in FILEs (or stdin)
Options:
-H Add 'filename:' prefix
-h Do not add 'filename:' prefix
-n Add 'line_no:' prefix
-l Show only names of files that match
-L Show only names of files that don't match
-c Show only count of matching lines
-o Show only the matching part of line
-q Quiet. Return 0 if PATTERN is found, 1 otherwise
-v Select non-matching lines
-s Suppress open and read errors
-r Recurse
-i Ignore case
-F PATTERN is a literal (not regexp)
-E PATTERN is an extended regexp
-m N Match up to N times per file
-A N Print N lines of trailing context
-B N Print N lines of leading context
-C N Same as '-A N -B N'
-e PTRN Pattern to match
-f FILE Read pattern from file
/root/DSMStatusmail.sh: line 26: Temperature_Celsius: not found
BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary.
Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]...
Search for PATTERN in FILEs (or stdin)
Options:
-H Add 'filename:' prefix
-h Do not add 'filename:' prefix
-n Add 'line_no:' prefix
-l Show only names of files that match
-L Show only names of files that don't match
-c Show only count of matching lines
-o Show only the matching part of line
-q Quiet. Return 0 if PATTERN is found, 1 otherwise
-v Select non-matching lines
-s Suppress open and read errors
-r Recurse
-i Ignore case
-F PATTERN is a literal (not regexp)
-E PATTERN is an extended regexp
-m N Match up to N times per file
-A N Print N lines of trailing context
-B N Print N lines of leading context
-C N Same as '-A N -B N'
-e PTRN Pattern to match
-f FILE Read pattern from file
/root/DSMStatusmail.sh: line 28: Temperature_Celsius: not found
sed: unmatched '/'
/root/DSMStatusmail.sh: line 42: /tmp/externalIP.result: Permission denied
awk: cmd. line:1: Division by zero
cat: can't open '/var/spool/syno_indexing_queue*': No such file or directory
sh: missing ]
/root/DSMStatusmail.sh: line 47: 100: not found
cat: can't open '/var/spool/thumb_create.queue*': No such file or directory
sh: missing ]
/root/DSMStatusmail.sh: line 49: 100: not found
cat: can't open '/var/spool/flv_create_queue*': No such file or directory
sh: missing ]
/root/DSMStatusmail.sh: line 51: ]: not found
--2012-08-24 18:03:47-- http://www.google.com/ig/api?weather=MEINE_STADT
Resolving www.google.com... 173.194.35.148, 173.194.35.145, 173.194.35.147, ...
Connecting to www.google.com|173.194.35.148|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: `STDOUT'
[ <=> ] 15 --.-K/s in 0s
2012-08-24 18:03:48 (671 KB/s) - written to stdout [15]
sed: unmatched '/'
sed: unmatched '/'
/root/DSMStatusmail.sh: line 66: C,: not found
/root/DSMStatusmail.sh: line 66: C,: not found
Cannot convert from ANSI_X3.4-1968 to iso-8859-1
Invalid or incomplete multibyte or wide character
"/root/dead.letter" 1/24
. . . message not sent.
Hallo,
ich habe versucht die Statusmail auszuführen, was aber nicht geklappt hat, Es ist alles installiert, nail, ipkg, cron. Das Skript habe ich eins zu eins vom wiki in nano kopiert und wurde ins root Verzeichnis gelegt.
Ich habe nur meine Emil ins Script eingefügt.
Nach dem ausführen des Scriptes kommt folgende Meldung
Rich (BBCode):DiskStation> /root/DSMStatusmail.sh BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary. Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... Search for PATTERN in FILEs (or stdin) Options: -H Add 'filename:' prefix -h Do not add 'filename:' prefix -n Add 'line_no:' prefix -l Show only names of files that match -L Show only names of files that don't match -c Show only count of matching lines -o Show only the matching part of line -q Quiet. Return 0 if PATTERN is found, 1 otherwise -v Select non-matching lines -s Suppress open and read errors -r Recurse -i Ignore case -F PATTERN is a literal (not regexp) -E PATTERN is an extended regexp -m N Match up to N times per file -A N Print N lines of trailing context -B N Print N lines of leading context -C N Same as '-A N -B N' -e PTRN Pattern to match -f FILE Read pattern from file /root/DSMStatusmail.sh: line 22: Temperature_Celsius: not found BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary. Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... Search for PATTERN in FILEs (or stdin) Options: -H Add 'filename:' prefix -h Do not add 'filename:' prefix -n Add 'line_no:' prefix -l Show only names of files that match -L Show only names of files that don't match -c Show only count of matching lines -o Show only the matching part of line -q Quiet. Return 0 if PATTERN is found, 1 otherwise -v Select non-matching lines -s Suppress open and read errors -r Recurse -i Ignore case -F PATTERN is a literal (not regexp) -E PATTERN is an extended regexp -m N Match up to N times per file -A N Print N lines of trailing context -B N Print N lines of leading context -C N Same as '-A N -B N' -e PTRN Pattern to match -f FILE Read pattern from file /root/DSMStatusmail.sh: line 24: Temperature_Celsius: not found BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary. Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... Search for PATTERN in FILEs (or stdin) Options: -H Add 'filename:' prefix -h Do not add 'filename:' prefix -n Add 'line_no:' prefix -l Show only names of files that match -L Show only names of files that don't match -c Show only count of matching lines -o Show only the matching part of line -q Quiet. Return 0 if PATTERN is found, 1 otherwise -v Select non-matching lines -s Suppress open and read errors -r Recurse -i Ignore case -F PATTERN is a literal (not regexp) -E PATTERN is an extended regexp -m N Match up to N times per file -A N Print N lines of trailing context -B N Print N lines of leading context -C N Same as '-A N -B N' -e PTRN Pattern to match -f FILE Read pattern from file /root/DSMStatusmail.sh: line 26: Temperature_Celsius: not found BusyBox v1.16.1 (2012-07-06 16:11:52 CST) multi-call binary. Usage: grep [-HhnlLoqvsriFE] [-m N] [-A/B/C N] PATTERN/-e PATTERN.../-f FILE [FILE]... Search for PATTERN in FILEs (or stdin) Options: -H Add 'filename:' prefix -h Do not add 'filename:' prefix -n Add 'line_no:' prefix -l Show only names of files that match -L Show only names of files that don't match -c Show only count of matching lines -o Show only the matching part of line -q Quiet. Return 0 if PATTERN is found, 1 otherwise -v Select non-matching lines -s Suppress open and read errors -r Recurse -i Ignore case -F PATTERN is a literal (not regexp) -E PATTERN is an extended regexp -m N Match up to N times per file -A N Print N lines of trailing context -B N Print N lines of leading context -C N Same as '-A N -B N' -e PTRN Pattern to match -f FILE Read pattern from file /root/DSMStatusmail.sh: line 28: Temperature_Celsius: not found sed: unmatched '/' /root/DSMStatusmail.sh: line 42: /tmp/externalIP.result: Permission denied awk: cmd. line:1: Division by zero cat: can't open '/var/spool/syno_indexing_queue*': No such file or directory sh: missing ] /root/DSMStatusmail.sh: line 47: 100: not found cat: can't open '/var/spool/thumb_create.queue*': No such file or directory sh: missing ] /root/DSMStatusmail.sh: line 49: 100: not found cat: can't open '/var/spool/flv_create_queue*': No such file or directory sh: missing ] /root/DSMStatusmail.sh: line 51: ]: not found --2012-08-24 18:03:47-- http://www.google.com/ig/api?weather=MEINE_STADT Resolving www.google.com... 173.194.35.148, 173.194.35.145, 173.194.35.147, ... Connecting to www.google.com|173.194.35.148|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/xml] Saving to: `STDOUT' [ <=> ] 15 --.-K/s in 0s 2012-08-24 18:03:48 (671 KB/s) - written to stdout [15] sed: unmatched '/' sed: unmatched '/' /root/DSMStatusmail.sh: line 66: C,: not found /root/DSMStatusmail.sh: line 66: C,: not found Cannot convert from ANSI_X3.4-1968 to iso-8859-1 Invalid or incomplete multibyte or wide character "/root/dead.letter" 1/24 . . . message not sent.
Nun habe ich absolut keine Ahnung von Scriptrn und deren Umsetzung, aber ich lerne
Laut WIKI: Das Script muss je nach Version der Diskstation noch angepasst werden, besonders die Werte $hours und $temperatur. Daher diese Werte am besten vorher mal im Terminal ausprobieren und schauen ob bei dem verwendeten Befehl etwas sinnvolles raus kommt.
Wenn ich in die Konsole $temperatur eingebe tut sich nichts, genau so wie bei $hours.
Ich habe eine DS212+ DS4.1 Beta, hat jemand von euch vielleicht ein fertiges Skript für die DS212+ oder kann mir jemand sagen wie ich die Fehler in dem o.g Code beseitigen kann?
Gruß und danke
Thomas
Status der Diskstation (DiskStation (DS-212+)) vom 26.08.12 (22:00):
--------------------------------------------
[Speicherplatz in TB]
Groesse Datentraeger: 912.5G
232.8G (hier fehlt "Groesse Datentraeger:" )
298.0G (hier fehlt "Groesse Datentraeger:" )
Freier Speicher: 799.3G
106.1G
96.5G
Belegter Speicher: 113.0G
126.7G Belegter Speicher fehlt
201.6G (12% Belegter Speicher fehlt
54%) falsch zugeordnet
68%falsch zugeordnet
Es gibt doch ein kleines Problem, habe zwei USB Platten an der DS212+, die Daten werden auch angezeigt, allerdings nicht die Zuordnung der Laufwerke, bzw die Bezeichnung der LW.
Dann werden die % nicht richtig in der Statuszeile angezeigt.
Rich (BBCode):Status der Diskstation (DiskStation (DS-212+)) vom 26.08.12 (22:00): -------------------------------------------- [Speicherplatz in TB] Groesse Datentraeger: 912.5G 232.8G (hier fehlt "Groesse Datentraeger:" ) 298.0G (hier fehlt "Groesse Datentraeger:" ) Freier Speicher: 799.3G 106.1G 96.5G Belegter Speicher: 113.0G 126.7G Belegter Speicher fehlt 201.6G (12% Belegter Speicher fehlt 54%) falsch zugeordnet 68%falsch zugeordnet
Und ist es möglich die Bezeichnung z.B. "USB3" oder "eSATA" vor der Plattengröße zu setzten?
Ich hoffe das jemand von euch dieses Thema noch abonniert hat und mir helfen kann
Danke
Gruß Thomas
Die Systemtemperatur kann man mit folgendem kleinen Skript auslesen:
Rich (BBCode):#!/bin/sh # # get systemp # DSIP="" # IP der Diskstation USER="" # Username für Login PASS="" # Passwort für Login RESULT="/tmp/sysinfo" # temporäre Datei für Ergebnis SYSTEMP="" # Variable die im Anschluss die Systemtemperatur enthält #------------------------------------------------------------------------------ /usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --save-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/login.cgi?username=${USER}&passwd=${PASS}" /usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --load-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/SystemInfoApp/SystemInfo.cgi?query=overview" SYSTEMP=`/bin/cat $RESULT | /bin/grep \""systemp\"" | /usr/bin/cut -d "," -f1 | /usr/bin/cut -d ":" -f2 | /bin/sed 's/^ *//g` echo $SYSTEMP rm -f $RESULT exit 0
#!/bin/sh
#
# get systemp
#
DSIP="IP der DS"
USER="mein User"
PASS="mein Passwort"
RESULT="/tmp/sysinfo"
SYSTEMP="# Variable die im Anschluss die Systemtemperatur enthält ?????????????"
#------------------------------------------------------------------------------
/usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --save-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/login.cgi?username=${USER}&passwd=${PASS}"
/usr/syno/bin/wget --no-check-certificate --cookies=on --keep-session-cookies --load-cookies=cookie -q -O $RESULT "https://${DSIP}:5001/webman/modules/SystemInfoApp/SystemInfo.cgi?query=overview"
SYSTEMP=`/bin/cat $RESULT | /bin/grep \""systemp\"" | /usr/bin/cut -d "," -f1 | /usr/bin/cut -d ":" -f2 | /bin/sed 's/^ *//g`
echo $SYSTEMP
rm -f $RESULT
# exit 0
echo "$nachricht" | /opt/bin/nail -s "Systemtemperatur" meine Mailadresse
echo 2 >/dev/ttyS1
df -h
filesystem1=`df -h | grep /opt | awk '{print $6}'`
size1=`df -h | grep /opt | awk '{print $2}'`
used1=`df -h | grep /opt | awk '{print $3}'`
available1=`df -h | grep /opt | awk '{print $4}'`
percent1=`df -h | grep /opt | awk '{print $5}'`
Zitat von Goetz: ...Versuch doch mal /opt durch /volu zu ersetzen, /volume1 sollte ja immer gemounted sein...
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.