we zijn momenteel bezig om aan de hand van een shell commando op een linux bak een grafiek in html weer te geven, daarvoor gebruiken we het volgende script;
dit script include wij, echter geeft de output van deze file RAW data terug, zoiets als ;
passthru geeft volgens de manual ook raw data weer, maar mijn inziens ook de enige manier om het commando uit te voeren...
wanneer je deze file apart in een browser opent, dus zonder HTML eromheen, maar wel de variabelen ingevuld, geeft hij wel het plaatje weer.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| <?php // Variables expected by these functions: // // GraphTitle = Title on top of graph (e.g. Users @ $hostname) // StartTime = Start-time of graph in epoch-time // EndTime = End-time of graph in epoch-time, also the word 'now' is accepted! // GraphWidth = Width in pixels of the graph (e.g. 400, 600 or 800) // GraphHeight = Height in pixels of the graph (e.g. 200, 400 or 600) // DataBase = Name of the database (e.g. /home/mrtg/var/rrd/$hostname.rrd) // Footer = Footer in graph (e.g. Copyright ICT Infra.) // $GraphTitle="Bla Bla"; $StartTime=1099993307; $EndTime=1100079707; $GraphWidth=800; $GraphHeight=600; $DataBase="/home/mrtg/var/rrd/$server.rrd"; $Footer="Test Graph "; $cmd="--base=1000 -l 0 --interlaced DEF:users=$DataBase:users:MAX "; $cmd.="DEF:uusers=$DataBase:uusers:MAX \"AREA:users#0000FF:total_users \" "; $cmd.="\"GPRINT:users:AVERAGE:Average=%.0lf users\" \"GPRINT:users:MAX:Maximum=%.0lf "; $cmd.="users\" \"GPRINT:users:LAST:Current=%.0lf users\" \"COMMENT:\\n\" "; $cmd.="\"AREA:uusers#00A0C1:unique_users\" \"GPRINT:uusers:AVERAGE:Average=%.0lf users\" "; $cmd.="\"GPRINT:uusers:MAX:Maximum=%.0lf users\" \"GPRINT:uusers:LAST:Current=%.0lf users\""; $cmd.=" \"COMMENT:\\n\" \"COMMENT:\\n\" COMMENT:\"$Footer\""; // echo $cmd; function rrd_draw( $cmd ) { if( isset( $_GET['size'] ) ) $size = $_GET['size']; else $size = 'm'; if( isset( $_GET['scope'] ) ) $scope = $_GET['scope']; else $scope = 'd'; switch( $scope ) { case 'd': $start = '-86400'; break; case 'w': $start = '-604800'; break; case 'y': $start = '-31622400'; break; } switch( $size ) { case 's': $width = '200'; $height='50'; break; case 'm': $width = '400'; $height='100'; break; case 'l': $width = '800'; $height='200'; break; } passthru( "/usr/bin/rrdtool graph - -a PNG -s $start" . " -w $width -h $height" . $cmd ); } rrd_draw($cmd); ?> |
dit script include wij, echter geeft de output van deze file RAW data terug, zoiets als ;
code:
1
| ‰PNG IHDRïÂååg4PLTEÿÿÿõõõÈÈÈ–––ŒŒŒ‚ÿÿ Á ðìU èIDATxí]ËŽÜ6-Î"».—íÝ8þþn $»i`zœ¬ |
passthru geeft volgens de manual ook raw data weer, maar mijn inziens ook de enige manier om het commando uit te voeren...
wanneer je deze file apart in een browser opent, dus zonder HTML eromheen, maar wel de variabelen ingevuld, geeft hij wel het plaatje weer.