Synology-Forum.nl

Tweaks / Addons A.K.A. The Underground => 3rd party apps integratie in DSM => Topic gestart door: wizjos op 06 oktober 2008, 12:58:37

Titel: Top - De zwaarste processen in beeld
Bericht door: wizjos op 06 oktober 2008, 12:58:37
Wie is bekend met het commando Top? Wel eens uitgeprobeerd?

Hierbij een .cgi script om de zwaarste processen in beeld te brengen.

Dit .cgi script wordt met een bepaalde interval (5 sec. ) ververst. Onderaan in het scherm staat een 'stop'knop die een tweede, statische .cgi pagina oproept (tops.cgi) met als inhoud de laatste dynamische pagina


Application.cfg

text = topjobs
description = Bekijk de top processen
type=embedded
path = /phpsrc/topjobs/top.cgi

top.cgi NB. Bijgewerkt met de beveiliging van Merty. Zie http://synology.nl/forum/viewtopic.php?f=83&t=2274.

#!/bin/ash
# if not admin or no user at all...no authentication...so, bye-bye
user=$(/usr/syno/synoman/webman/modules/authenticate.cgi);
if [ "$user" !=  "admin" ] ;
then
  echo "Content-type: text/html"
  echo ""
  echo "<HTML><HEAD><TITLE>Login Required</TITLE></HEAD><BODY>Please login as admin first, before using this webpage</BODY></HTML>"
  exit
fi
p=$(echo $QUERY_STRING | sed 's/%2C/,/g')
if [ "$p" == "" ] ; then
 p="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"
else
 p=${p##*=}
 p=$(echo $p | awk -F, '{for (i=2;i<=NF;++i) printf("%3.1f,",$i)}')
fi
top >tmp
p=${p}$(<tmp awk 'NR>4&&NR<25{s+=$6}END{print s}')
cat <<EOT
Content-type: text/html

<html><head><title>The Topmost Processes</title></head>
<style>
body,a {font:11px Arial;
      background-color:#ddf
      position:absolute;
      top:40px;}
</style>
<body><form name="f" method="get" action="top.cgi">
<h2>The Topmost Processes on host $(hostname -s)</h2>
<input type="hidden" name="p" value="$p">
<div><pre>
EOT
sed 's/.[.m//g'<tmp |sed 's/.[.//g'
cat <<EOT
</pre></div>
<img src="http://chart.apis.google.com/chart?cht=ls&chs=510x120&chg=5,20&chco=33aa33&chm=B,77bb77,0,0,0&chf=a,s,efefeff0&chd=t:$p">
<br><br><br><a style="margin-left:241px" href="tops.cgi?p=$p">stop</a>
<script>window.setTimeout('f.submit()',5000);</script>
</form></body></html>

tops.cgi NB. Bijgewerkt met de beveiliging van Merty. Zie http://synology.nl/forum/viewtopic.php?f=83&t=2274.

#!/bin/ash
# if not admin or no user at all...no authentication...so, bye-bye
user=$(/usr/syno/synoman/webman/modules/authenticate.cgi);
if [ "$user" !=  "admin" ] ;
then
  echo "Content-type: text/html"
  echo ""
  echo "<HTML><HEAD><TITLE>Login Required</TITLE></HEAD><BODY>Please login as admin first, before using this webpage</BODY></HTML>"
  exit
fi
p=$(echo $QUERY_STRING | sed 's/%2C/,/g')
p=${p##*=}
p=echo $p | awk -F, '{for (i=2;i<=NF;++i) printf("%3.1f",$i)}'
top >tmp
p=${p},$(<tmp awk 'NR>4&&NR<25{s+=$6}END{print s}')
cat <<EOT
Content-type: text/html

<html><head><title>The Topmost Processes</title></head>
<style>
body {font:11px Arial;
      background-color:#ddf
      position:absolute;
      top:40px;}
</style>
<body>
<h2>The Topmost Processes on host $(hostname -s)</h2>
<div><pre>
EOT
sed 's/.[.m//g'<tmp |sed 's/.[.//g'
cat <<EOT
</pre></div>
<img src="http://chart.apis.google.com/chart?cht=ls&amp;chs=510x120&amp;chco=ff3333&amp;
chf=c,lg,90,999999,0.8,000000,0&amp;chd=t:$p">
</form></body></html>
EOT

Hoe dit er uit ziet:
(http://94.212.224.81/images/syno/topjobs.jpg)

Denk er even om dat er geen ^M einde regeltekens vanuit Windows in de scripts komen!
Flag indien nodig de scripts: chmod 755 scriptnaam.cgi
Zie 3rd party apps handleiding (http://synology.nl/forum/viewtopic.php?f=83&t=2182) voor uitleg over 3rd party in het algemeen en waar je welke bestanden plaatst
Oja, zoals je in de code ziet wordt er gebruik gemaakt van Google om de grafiek te produceren

Veel plezier er mee!

Wizjos
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wizjos op 25 oktober 2008, 21:50:33
Code is bijgewerkt met de beveiliging van Merty.

Groet,

Wizjos
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: chfauco op 24 februari 2009, 22:31:58
Hallo,

k doe waarschijnlijk iets verkeerd maar

Als ik http://IP:5000/phpsrc/topjobs/top.cgi (http://IP:5000/phpsrc/topjobs/top.cgi) probeer te starten krijg ik
Sorry, the page you are looking for is not found.

Ik ben zeker dat de script wel wordt uitgevoerd, want top creert een file tmp aan in de /usr/syno/synoman/phpsrc/topjobs directory ...

Enig idee?

tx

DS> ll
drwxr-xr-x    2 root     root         4096 Feb 24 22:35 .
drwxr-xr-x    7 root     root         4096 Feb 24 22:34 ..
-rw-r--r--    1 root     root         1172 Feb 24 22:36 tmp
-rwxr-xr-x    1 root     root         1871 Feb 24 22:37 top.cgi
-rwxr-xr-x    1 root     root         1481 Feb 24 22:32 tops.cgi




http://10.10.10.111:5000/phpsrc/topjobs/tmp (http://10.10.10.111:5000/phpsrc/topjobs/tmp)
werkt dan wel ... en toont de file
tx
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wizjos op 25 februari 2009, 18:49:17
chfauco,

Wat in ieder geval fout is, is de http aanroep. In combinatie met poort 5000 /5001 gaat dat niet werken.... Maak er eens https van. :wink:
Heb even zelf hier getest en als ik http://intern-ip:5000/phpsrc/topjobs/tmp (http://intern-ip:5000/phpsrc/topjobs/tmp) aanroep krijg ik inderdaad de inhoud van tmp te zien. Maar dat lijkt niet op het schermvoorbeeld zoals ik die in het begin heb geplaatst... :mrgreen:

Succes!

Wizjos
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: chfauco op 02 maart 2009, 14:02:15
Hallo,

Ik heb https ook geprobeerd, maar zelfde phenomeen.
Raar..
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wizjos op 02 maart 2009, 18:56:40
Hmmm,

Ik kan er nu ook niet heel veel meer van maken... Alles lijkt goed.. Ik neem aan dat je wel cgi hebt ge-enabled op je sys-apache :mrgreen:
Wat doet tops.cgi als je die aanroept?

Groet,

Wizjos
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wowo op 02 maart 2009, 22:32:27
Ook ik heb geprobeerd deze applicatie in werking te krijgen.
Helaas, ook bij mij de melding: SYNOLOGY Sorry, de pagina die u zoekt kan niet weergegeven worden.
En er wordt een tmp bestand aangemaakt in /usr/syno/synoman/phpsrc/topjobs
Andere 3rdparty apps werken bij mij overigens prima.
Nog ideeën?
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wizjos op 03 maart 2009, 01:29:51
Hmpf,

Heb voor de zekerheid de code nog eens gekopiëerd uit de post... Werkt! :? Wat ik echter bewust heb gedaan is de code in notepad zetten, en dat opslaan (als testtop.cgi met chmod 755). Als ik de pagina dan aanroep (https://intern-ip:5001/phpsrc/topjobs/TESTTOP.cgi (https://intern-ip:5001/phpsrc/topjobs/TESTTOP.cgi)) krijg ik een IE fout dat de pagina niet weergegeven kan worden... NIET die van de Syno dus...
Vervolgens testtop.cgi ge-edit en bij iedere regel de ^M aan het einde verwijderd... Et, voila... Het werkt...
Jullie zijn die ^M's toch niet vergeten weg te halen? :mrgreen:

Groet,

Wizjos
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: wowo op 03 maart 2009, 11:51:36
Ik heb het ook allemaal opnieuw geprobeerd. Nu met wordpad ipv kladblok.
Nu verschenen weer wel de gebruikelijke ^M's.
Deze verwijderd.
Ook in de application.cfg de volgende regel veranderd van:
type=embedded naar type = embedded
Zowaar alles werkt  :lol:  :lol:
Kopieeren vanuit windows naar Linux levert blijkbaar soms problemen op. Of was het de "fout" in de application file?
Anyway het werkt en daar gaat het om.

Edit: Toch nog een klein vraagje over de leuke grafiek.
Wanneer ik gebruik maak van SABnzbd en Squeezecenter tegelijkertijd zie ik het gehele veld groen.
Alles blijft echter wel werken. Kan me eigenlijk niet voorstellen dat de processor continue 100% belast wordt zoals dit beeld suggereerd.???????????
Titel: Re: Top - De zwaarste processen in beeld
Bericht door: zdDog op 28 juni 2009, 11:39:05
geinstalleerd en het werkt

nu krijg ik een gek beeld van wat processen die erg veel slurpen:

het bijbehorende plaatje:

(http://sisal.dyndns.org/remote/images/topjobs.jpg)

process list
# psgeeft
Citaat
10197 postfix    1564 S   tlsmgr -l -t unix -u
16482 root        428 R   vi unzip.php
16488 root        376 S   ash
16494 root        432 R   vi unzip.php
16570 root        696 S   /usr/sbin/inetd
23622 root        756 S   crond -l 8 -L /var/log/cron.log
23699 dovecot    1708 S   pop3-login

# kill 16482
# kill 16494

geeft geen resultaat, processen blijven bestaan

heb dit (unzip.php) ooit ge-edit bij 3rd party installatie

oplossing: even rebooten
(http://sisal.dyndns.org/remote/images/topjobs2.jpg)

PS
hier mijn icoontjes

[attachimg=1:3o2z81pr]graph16.png[/attachment:3o2z81pr][attachimg=0:3o2z81pr]graph32.png[/attachment:3o2z81pr]
application.cfg
text = topjobs
description = Top CPU-gebruik processen
type = embedded
icon_16 = graph16.png
icon_32 = graph32.png
path = /phpsrc/topjobs/top.cgi