Statusmail von der Diskstation

Status
Für weitere Antworten geschlossen.

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
probiere mal mit /bin/grep und /usr/bin/awk.

Gruß Götz
 
Zuletzt bearbeitet:

itari

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

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
ups, hast natürlich recht, hab es korrigiert.

Gruß Götz
 

donkhan

Benutzer
Mitglied seit
22. Mai 2011
Beiträge
202
Punkte für Reaktionen
0
Punkte
16
meinst du ich soll anstatt, /usr/bin/awk /bin/grep veruchen?

weil /usr/bin/awk habe ich ja drinne.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
nein, ich meinte die komplette Pfadangabe zu grep und awk, aber das ist es wohl doch nicht, an anderen Stellen klappt es ja auch ohne Pfadangabe. Ist /opt bei Dir gemounted? Versuch doch mal /opt durch /volu zu ersetzen, /volume1 sollte ja immer gemounted sein.

Gruß Götz
 

donkhan

Benutzer
Mitglied seit
22. Mai 2011
Beiträge
202
Punkte für Reaktionen
0
Punkte
16
hallo,

also opt/ sollte gemountet sein, hab auch Pyload installiert, das funzt ja auch.

Ich soll überall wo /opt ist einfach /volu draus machen?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
funktioniert denn
Rich (BBCode):
df -h | grep /opt | awk '{print $2}'
auf der Kommandozeile?

Gruß Götz
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Wenn du /opt per symbolischem Link verbunden hast erscheint dann auch nichts, ist bei mir das gleiche. Ein ls -l /opt sollte als Ergebnis ungefähr sowas liefern:
lrwxrwxrwx 1 root root 18 Mar 26 14:50 /opt -> /volume1/@optware/
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
dann ersetze /opt durch /volu bei den Zeilen für die Kapazitätsabfragen, also
Rich (BBCode):
filesystem1=`df -h | grep /volu | awk '{print $6}'`
size1=`df -h | grep /volu | awk '{print $2}'`
used1=`df -h | grep /volu | awk '{print $3}'`
available1=`df -h | grep /volu | awk '{print $4}'`
percent1=`df -h | grep /volu | awk '{print $5}'`

Gruß Götz
 

donkhan

Benutzer
Mitglied seit
22. Mai 2011
Beiträge
202
Punkte für Reaktionen
0
Punkte
16
Diskstation> ls -l /opt
lrwxrwxrwx 1 root root 26 Jul 24 14:51 @optware -> /volume1/@optware/@optware
lrwxrwxrwx 1 root root 21 Jul 24 14:51 bin -> /volume1/@optware/bin
-rw-r--r-- 1 root root 48 Jul 24 16:08 configdir
lrwxrwxrwx 1 root root 21 Jul 24 14:51 doc -> /volume1/@optware/doc
lrwxrwxrwx 1 root root 21 Jul 24 14:51 etc -> /volume1/@optware/etc
drwxr-xr-x 4 root root 4096 Jul 24 15:14 i686-linux-gnu
lrwxrwxrwx 1 root root 25 Jul 24 14:51 include -> /volume1/@optware/include
lrwxrwxrwx 1 root root 22 Jul 24 14:51 info -> /volume1/@optware/info
drwx------ 2 root root 4096 Jul 24 16:23 ipkg-3NbaRP
drwx------ 2 root root 4096 Jul 24 15:08 ipkg-Z80fWL
drwx------ 2 root root 4096 Jul 24 15:15 ipkg-y8jY5m
lrwxrwxrwx 1 root root 21 Jul 24 14:51 lib -> /volume1/@optware/lib
drwxr-xr-x 3 root root 4096 Jul 24 15:10 libexec
lrwxrwxrwx 1 root root 23 Jul 24 14:51 local -> /volume1/@optware/local
lrwxrwxrwx 1 root root 21 Jul 24 14:51 man -> /volume1/@optware/man
drwxr-xr-x 6 root root 4096 Jun 18 16:28 pyload
drwxr-xr-x 2 root root 4096 Nov 10 2010 sbin
lrwxrwxrwx 1 root root 23 Jul 24 14:51 share -> /volume1/@optware/share
lrwxrwxrwx 1 root root 21 Jul 24 14:51 tmp -> /volume1/@optware/tmp
lrwxrwxrwx 1 root root 21 Jul 24 14:51 var -> /volume1/@optware/var

das habe ich raus, ich denke das ist dabei, also müsste es gemountet sein oder?

ich probiere es mal aus
 

donkhan

Benutzer
Mitglied seit
22. Mai 2011
Beiträge
202
Punkte für Reaktionen
0
Punkte
16
Hallo,
dann ersetze /opt durch /volu bei den Zeilen für die Kapazitätsabfragen, also
Rich (BBCode):
filesystem1=`df -h | grep /volu | awk '{print $6}'`
size1=`df -h | grep /volu | awk '{print $2}'`
used1=`df -h | grep /volu | awk '{print $3}'`
available1=`df -h | grep /volu | awk '{print $4}'`
percent1=`df -h | grep /volu | awk '{print $5}'`

Gruß Götz

danke hat funktioniert jetzt ^^
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
dann hast Du ipkg auf symlink umgestellt und somit nicht gemounted.

Gruß Götz
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
wenn Du mount auf der Kommandozeile eingibst wird dort opt nicht erscheinen.

Gruß Götz
 

Homer MB

Benutzer
Mitglied seit
20. Feb 2011
Beiträge
141
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
Ich habe mir das Skript aus dem Wiki so weit für meine Bedürfnisse angepasst, und es läuft super. Eine Information würde ich gerne noch einfügen, aber ich weiß nicht welcher Befehl oder welche Variable das sein könnte und zwar die Information des Thermal-Status wie im eingefügtes Bild dargestellt.
Bild aus I-Pod App
Status.PNG
Gruß Homer:cool:
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Zur Info: Ab DSM 3.2 liegt uptime anscheinend in usr/bin/
Daher bitte das Script entsprechend anpassend, je nach Version.
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Zur Info: Ab DSM 3.2 liegt uptime anscheinend in usr/bin/
Daher bitte das Script entsprechend anpassend, je nach Version.

Nein, da ja da nur steht "up_time=`uptime`"
also der Befehl "uptime" so ausgeführt wird. In jeder DSM Version (wie es auch sein sollte) sind die $PATH richtig gesetzt und man benötigt nicht das Ausführen über den kompletten Pfad: /usr/bin/uptime
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
In jeder DSM Version (wie es auch sein sollte) sind die $PATH richtig gesetzt und man benötigt nicht das Ausführen über den kompletten Pfad: /usr/bin/uptime

Da habe ich aber schon öfters anderes erlebt.
Außerdem ist es ja doof wenn du das schon so im Script stehen hast.

Ich habe das Script jetzt noch etwas weiter entwickelt, teilweise mit Dingen aus itaris admin tool (Vielen Dank für die Erlaubnis zur Verwendung!).
Ob die Infos alle so super nützlich sind, kann man drüber streiten, wer etwas nicht braucht kann es ja raus nehmen:

Die Mail von der DS sieht bei mir jetzt so aus:

Status der Diskstation (Nas (DS-410j)) vom 09.09.11 (13:25):
--------------------------------------------

[Speicherplatz in TB]
Groesse Datentraeger: 5.4T
Freier Speicher: 688.6G
Belegter Speicher: 4.7T (87%)

[Auslastung]
CPU-Auslastung: 0%
Memory: 86%
Swap: 1%
Indexing Queue: 2
Thumbs Queue: 0
FLV Queue: 0

[Datentraeger]
Volume 1: 41 Grad, 7818 Stunden Laufzeit
Volume 2: 42 Grad, 7808 Stunden Laufzeit
Volume 3: 42 Grad, 7962 Stunden Laufzeit
Volume 4: 41 Grad, 7803 Stunden Laufzeit

[IP]
Externe IP: 69.15.45.4
Interne IP: 192.168.178.25

[Aktuelle Netzwerkverbindungen]
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 Nas:5000 maze128.fritz.box:33057 ESTABLISHED
tcp 0 0 Nas:5000 maze128.fritz.box:33050 ESTABLISHED
tcp 0 0 Nas:5000 maze128.fritz.box:33056 ESTABLISHED
tcp 0 0 Nas:5000 maze128.fritz.box:33054 ESTABLISHED

[Netzwerkstatistik eth0]
RX bytes:1375702476 (1.2 GiB)
TX bytes:43629973 (41.6 MiB)

[Uptime]
Uptime: 2:08 Stunden

[Wetter]
Temperatur: 20 Grad C
Luftfeuchtigkeit: 73%
Vorhersage: Mostly Sunny

[Letzte Nachrichten]
Sep 9 13:14:24 synoindexd: audio_parse.cpp (134) FAILED TO WRITE PIC FILE

Das Script sieht dann entsprechend so aus:

#!/bin/sh
LOCATION='MEINE_STADT'
LOGFILE=/var/log/shutdown.log
echo 6 > /dev/ttyS1
echo 7 > /dev/ttyS1
model=`dmesg | grep -m 1 Model | awk '{print $4}'`
netstat=`netstat -tu`
eth0_rx=`ifconfig eth0 | grep "bytes" | awk '{print $1 " " $2 " " $3 " " $4}'`
eth0_tx=`ifconfig eth0 | grep "bytes" | awk '{print $5 " " $6 " " $7 " " $8}'`
hostname=`hostname -s`
hours1=`/usr/syno/bin/smartctl -A /dev/hda | /bin/grep Power_On_Hours | /usr/bin/awk '{print $10}'`
hours2=`/usr/syno/bin/smartctl -A /dev/hdb | /bin/grep Power_On_Hours | /usr/bin/awk '{print $10}'`
hours3=`/usr/syno/bin/smartctl -A /dev/hdc | /bin/grep Power_On_Hours | /usr/bin/awk '{print $10}'`
hours4=`/usr/syno/bin/smartctl -A /dev/hdd | /bin/grep Power_On_Hours | /usr/bin/awk '{print $10}'`
temperatur1=`/usr/syno/bin/smartctl -A /dev/hda | /bin/grep Temperature_Celsius | /usr/bin/awk '{print $10}'`
temperatur2=`/usr/syno/bin/smartctl -A /dev/hdb | /bin/grep Temperature_Celsius | /usr/bin/awk '{print $10}'`
temperatur3=`/usr/syno/bin/smartctl -A /dev/hdc | /bin/grep Temperature_Celsius | /usr/bin/awk '{print $10}'`
temperatur4=`/usr/syno/bin/smartctl -A /dev/hdd | /bin/grep Temperature_Celsius | /usr/bin/awk '{print $10}'`
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}'`
datum=`date +"%d.%m.%y`
zeit=`date +"%H:%M`
up_time=`uptime | sed 's/^.*up //' | sed 's/, load.*$//'`
CPU=`/usr/bin/top -b -n 1 |awk 'NR>7&&NR<30 {s+=$9} END {printf("%2d",s)}'`
INT_IP=`ifconfig eth0 | grep inet | sed 's/^ *..........//' | sed 's/ .*$//' | sed 's/:$//'`
IP=`if [ -f /tmp/externalIP.result ];then /bin/get_key_value /tmp/externalIP.result externalIP;else echo 0.0.0.0;fi`
FREE=`free`
MEM=`echo "$FREE" | awk 'NR==2{printf("%2d",$3/$2*100)}'`
SWAP=`echo "$FREE" | awk 'NR==3{printf("%2d",$3/$2*100)}'`
IQ=`cat /var/spool/syno_indexing_queue* | wc -l`; IQ1=100; if [ $IQ -lt 100 ]; then IQ1=$IQ; fi
TQ=`cat /var/spool/thumb_create.queue* | wc -l`; TQ1=100; if [ $TQ -lt 100 ]; then TQ1=$TQ; fi
FQ=`cat /var/spool/flv_create_queue* | wc -l`; FQ1=100; if [ $FQ -lt 100 ]; then FQ1=$FQ; fi
MSG=`tail -1 /var/log/messages`
LASTMSG=`echo $MSG | cut -b 1-78`
WEATHER=`wget -O - "http://www.google.com/ig/api?weather="$LOCATION 2>/dev/null`
TEMP=`echo $WEATHER | sed -e 's/^.*temp_c data=\"\\([0-9-][0-9\]*\\)\".*/\\1/'`
COND=`echo $WEATHER | sed -e 's/^.*condition data="\(.*\)".*/\\1/'`
HUM=`echo $WEATHER | sed -e 's/^.*humidity data="Humidity:\(.*\)%.*/\\1/'`

log() {
echo `date +%c`: $1 >> $LOGFILE
}
log "Temperatur 1: $temperatur1 °C, Temperatur 2: $temperatur2 °C, Temperatur 3: $temperatur3 °C, Temperatur 4: $temperatur4 °C, IP: $IP"
nachricht="Status der Diskstation ($hostname ($model)) vom $datum ($zeit):
--------------------------------------------

[Speicherplatz in TB]
Groesse Datentraeger: $size1
Freier Speicher: $available1
Belegter Speicher: $used1 ($percent1)

[Auslastung]
CPU-Auslastung: ${CPU}%
Memory: ${MEM}%
Swap: ${SWAP}%
Indexing Queue: $IQ
Thumbs Queue: $TQ
FLV Queue: $FQ

[Datentraeger]
Volume 1: $temperatur1 Grad, $hours1 Stunden Laufzeit
Volume 2: $temperatur2 Grad, $hours2 Stunden Laufzeit
Volume 3: $temperatur3 Grad, $hours3 Stunden Laufzeit
Volume 4: $temperatur4 Grad, $hours4 Stunden Laufzeit

[IP]
Externe IP: $IP
Interne IP: $INT_IP

[Aktuelle Netzwerkverbindungen]
$netstat

[Netzwerkstatistik eth0]
$eth0_rx
$eth0_tx

[Uptime]
Uptime:$up_time Stunden

[Wetter]
Temperatur: ${TEMP} Grad C
Luftfeuchtigkeit:${HUM}%
Vorhersage: $COND

[Letzte Nachrichten]
$LASTMSG

"
echo "$nachricht" | /opt/bin/nail -s "Status Diskstation" USER.USER@PROVIDER.de
echo 2 >/dev/ttyS1
 
Zuletzt bearbeitet:

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
@maze128:
Sieht gut aus, den Wetterteil kann ich jedoch nicht ganz nachvollziehen, aber jeder kann diesen ja ggf. weglassen.

Mich würde interessieren wie man die Systemtemperatur (worde hier auch schon von "Homer MB" gepostet) auslesen kann (unter Systeminformationen > Thermal-Status)
 
Zuletzt bearbeitet:
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