- Mitglied seit
- 15. Mai 2008
- Beiträge
- 21.900
- Punkte für Reaktionen
- 14
- Punkte
- 0
Wir sind erstmal mit dem Telnet auf der Linux-Kommandozeile und schauen uns die Memory-Belegung mit free an:
Wenn uns nur die Zeile 2 und dort die Werte für used, free, shared und buffers interessieren, dann können wir das free-Kommando mit einer Pipe an das awk-Kommando weiterleiten, welches uns komfortabel auf einzelne Zeilen und Werte in einer Zeile zugreifen lässt. Die Zeilennummer heißt NR, die Spalten $3,$4,$5,$6, also zusammen:
Wir könnten auch die Zeile mit einem eindeutigen Suchbegriff herausfiltern:
Wenn wir die prozentualen Anteile erhalten möchten, dann ginge das so:
Noch Kommas zwischen die Zahlen:
Nun wollen wir das graphisch darstellen und benutzen dazu das Google-Chart-API. Ein einfaches Kreisdiagramm geht so (im Browser eingegeben):
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
Nun packen wir das in eine CGI-Datei namens free.cgi ins Verzeichnis /usr/syno/synoman/phpsrc/free/ und müssen nun die &-Zeichen gegen HTML-Entities & austauschen:
Jetzt noch chmod 755 free.cgi und einmal testen mit: https://DS_name:5001/phpsrc/free/free.cgi
Jetzt ersetzen wir die Werte 10,20,5,15 gegen die Werte aus dem free | awk ... und machen die Legende passend:
und rufen jetzt das ganze noch mal auf https://DS_name:5001/phpsrc/free/free.cgi und haben ab jetzt eine schöne graphische Anzeige unserer Memory-Belegung. Wer mag, kanns nun noch als 3rd-party-Application integrieren.
Rich (BBCode):
free
total used free shared buffers
Mem: 126904 119860 7044 0 20528
Swap: 522040 7732 514308
Total: 648944 127592 521352
Wenn uns nur die Zeile 2 und dort die Werte für used, free, shared und buffers interessieren, dann können wir das free-Kommando mit einer Pipe an das awk-Kommando weiterleiten, welches uns komfortabel auf einzelne Zeilen und Werte in einer Zeile zugreifen lässt. Die Zeilennummer heißt NR, die Spalten $3,$4,$5,$6, also zusammen:
Rich (BBCode):
free | awk 'NR==2 {print $3,$4,$5,$6}'
119916 6988 0 20608
Wir könnten auch die Zeile mit einem eindeutigen Suchbegriff herausfiltern:
Rich (BBCode):
free | awk '/Mem/ {print $3,$4,$5,$6}'
119916 6988 0 20608
Wenn wir die prozentualen Anteile erhalten möchten, dann ginge das so:
Rich (BBCode):
free | awk '/Mem/ {print $3/$2*100,$4/$2*100,$5/$2*100,$6/$2*100}'
94.4935 5.50652 0 16.2517
Noch Kommas zwischen die Zahlen:
Rich (BBCode):
free | awk '/Mem/ {print $3/$2*100 "," $4/$2*100 "," $5/$2*100 "," $6/$2*100}'
94.4935,5.50652,0,16.2517
Nun wollen wir das graphisch darstellen und benutzen dazu das Google-Chart-API. Ein einfaches Kreisdiagramm geht so (im Browser eingegeben):
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test
Nun packen wir das in eine CGI-Datei namens free.cgi ins Verzeichnis /usr/syno/synoman/phpsrc/free/ und müssen nun die &-Zeichen gegen HTML-Entities & austauschen:
Rich (BBCode):
#!/bin/ash
cat <<EOT
Content-type: text/html
<html><head><title>System-Info</title></head><body>
<img src="http://chart.apis.google.com/chart?cht=p&
chs=250x200&chd=t:10,20,5,15&chl=A|B|C|D&chtt=Test">
</div></body></html>
EOT
Jetzt noch chmod 755 free.cgi und einmal testen mit: https://DS_name:5001/phpsrc/free/free.cgi
Jetzt ersetzen wir die Werte 10,20,5,15 gegen die Werte aus dem free | awk ... und machen die Legende passend:
Rich (BBCode):
#!/bin/ash
cat <<EOT
Content-type: text/html
<html><head><title>System-Info</title></head><body>
<img src="http://chart.apis.google.com/chart?cht=p&chs=250x200&chd=t:
$(free | awk '/Mem/ {print $3/$2*100 "," $4/$2*100 "," $5/$2*100 "," $6/$2*100}')
&chl=used|free|shared|buffers&chtt=Mem">
</div></body></html>
EOT
und rufen jetzt das ganze noch mal auf https://DS_name:5001/phpsrc/free/free.cgi und haben ab jetzt eine schöne graphische Anzeige unserer Memory-Belegung. Wer mag, kanns nun noch als 3rd-party-Application integrieren.