Hi Stephen, Mar 20 stphnwallace wrote:
> > > Regards, > > Stephen J Wallace > +61 (0)415 306731 > > On 20/03/2012, at 6:51 PM, "stphnwallace [via RRD > Mailinglists]"<[email protected]> wrote: > > > Sorry about formatting! > > > > Strong cup of coffee required before proceeding > > > > I have rrd setup as a service on a remote box using xinetd. > > > > I have been able to echo command to this piping thru netcat, and been able > > to do creates, updates, info, last, etc. > > > > My end goal is to use rrdgraph against a remote rrdrsv, and show the > > resulting graph in web interface thru PHP code. > > > > I think I've uncovered a related bug whereby one cannot use spaces between > > double quotes. > > Examples as follow; > > > > This works; > > [root@nagios httpd]# echo `cat /tmp/rrdgraph` | nc 192.168.122.32 13900 > > [root@nagios httpd]# cat /tmp/rrdgraph graph sjw.png > > DEF:var1=localhost/_HOST_.rrd:1:AVERAGE "CDEF:sp1=var1,100,/,12,*" > > "CDEF:sp2=var1,100,/,30,*" "CDEF:sp3=var1,100,/,50,*" > > "CDEF:sp4=var1,100,/,70,*" AREA:var1#FF5C00:"Round Trip Times " > > AREA:sp4#FF7C00: AREA:sp3#FF9C00: AREA:sp2#FFBC00: AREA:sp1#FFDC00: > > GPRINT:var1:LAST:"%6.2lf ms last " GPRINT:var1:MAX:"%6.2lf ms max " > > GPRINT:var1:AVERAGE:"%6.2lf ms avg \n" LINE1:var1#000000:"" > > > > This does not work directly from command line, although it's exactly the > > same code from /tmp/rrdgraph; > > [root@nagios httpd]# echo "graph sjw.png > > DEF:var1=localhost/_HOST_.rrd:1:AVERAGE "CDEF:sp1=var1,100,/,12,*" > > "CDEF:sp2=var1,100,/,30,*" "CDEF:sp3=var1,100,/,50,*" > > "CDEF:sp4=var1,100,/,70,*" AREA:var1#FF5C00:"Round Trip Times " > > AREA:sp4#FF7C00: AREA:sp3#FF9C00: AREA:sp2#FFBC00: AREA:sp1#FFDC00: > > GPRINT:var1:LAST:"%6.2lf ms last " GPRINT:var1:MAX:"%6.2lf ms max " > > GPRINT:var1:AVERAGE:"%6.2lf ms avg \n" LINE1:var1#000000:""" | nc > > 192.168.122.32 13900 I guess in the first test the shell is acting differently on the string as in the second version ... quoting can be tricky ... you can run $ rrdtool - and then enter the commands directly then the shell will not interfear .... or you could do $ cat xxx | rrdtool $ cheers tobi > > ***snip**** > > > > ERROR: 'T' is not a valid function name > > > > I've made the T in the command BOLD above to make it stand out. It's the > > first letter of "Trip" > > > > Now, when I remove the spaces from between the double quotes, it works; > > > > [root@nagios httpd]# echo "graph sjw.png > > DEF:var1=localhost/_HOST_.rrd:1:AVERAGE "CDEF:sp1=var1,100,/,12,*" > > "CDEF:sp2=var1,100,/,30,*" "CDEF:sp3=var1,100,/,50,*" > > "CDEF:sp4=var1,100,/,70,*" AREA:var1#FF5C00:"Round_Trip_Times " > > AREA:sp4#FF7C00: AREA:sp3#FF9C00: AREA:sp2#FFBC00: AREA:sp1#FFDC00: > > GPRINT:var1:LAST:"%6.2lf " GPRINT:var1:MAX:"%6.2lf " > > GPRINT:var1:AVERAGE:"%6.2lf" LINE1:var1#000000:""" | nc 192.168.122.32 13900 > > > > ....so, maybe I've found a bug here??? > > > > So, when I use the command line above, sjw.png gets created on the remote > > server. If I change the sjw.png for a -, I see PNG style splat on the > > screen as I would hope for. Now to sew this into a PHP script; > > > > ******** > > <? P H P > > > > //set the document header so that this renders as an image > > header("Content-type: image/png"); > > > > //this is the shell command that you want to execute > > // $cmdString = 'echo `cat /tmp/rrdgraph` | /usr/bin/nc 192.168.122.32 > > 13900'; > > //$cmdString = '`cat /tmp/rrdgraph` | /usr/bin/nc 192.168.122.32 13900'; > > <******** If I store the rrd "graph" commands in a file, I get a 0 back, > > but no PNG is created, nor any errors. > > $cmdString = ' echo "graph - DEF:var1=localhost/_HOST_.rrd:1:AVERAGE > > "CDEF:sp1=var1,100,/,12,*" "CDEF:sp2=var1,100,/,30,*" > > "CDEF:sp3=var1,100,/,50,*" "CDEF:sp4=var1,100,/,70,*" > > AREA:var1#FF5C00:"Round_Trip_Times " AREA:sp4#FF7C00: AREA:sp3#FF9C00: > > AREA:sp2#FFBC00: AREA:sp1#FFDC00: GPRINT:var1:LAST:"%6.2lf " > > GPRINT:var1:MAX:"%6.2lf " GPRINT:var1:AVERAGE:"%6.2lf" > > LINE1:var1#000000:""" | nc 192.168.122.32 13900 '; <*******This one > > is closest to working I think > > > > // $cmdString = 'echo "graph - DEF:var1=localhost/_HOST_.rrd:1:AVERAGE > > CDEF:sp1=var1,100,/,12,* CDEF:sp2=var1,100,/,30,* CDEF:sp3=var1,100,/,50,* > > CDEF:sp4=var1,100,/,70,* AREA:var1#FF5C00:"Round Trip Times " > > AREA:sp4#FF7C00: AREA:sp3#FF9C00: AREA:sp2#FFBC00: AREA:sp1#FFDC00: > > GPRINT:var1:LAST:"%6.2lf ms last " GPRINT:var1:MAX:"%6.2lf ms max " > > GPRINT:var1:AVERAGE:"%6.2lf ms avg \n" LINE1:var1#000000:"""|/usr/bin/nc > > 192.168.122.32 13900'; > > > > //if I can see a hard-coded test that works, I can add the support that > > would be needed on our end > > > > //execute command and direct output to browser > > passthru($cmdString,$bool); > > > > $debugstring = "CMD: $cmdString RETURNCODE: $bool \n"; > > > > //lets create a simple log for debugging, keep a running tail on this. > > file_put_contents('/tmp/debugger.log',$debugstring,FILE_APPEND); > > //file_put_contents('/tmp/debugger.log',$debugstring,'a'); <***** > > changed the "a" to FILE_APPEND :) > > > > ?> > > ******** > > ...when I check my PHP debug log, I see a zero, meaning everything is > > "good"....but I see no graph displayed in my browser, nor any > > /var/log/httpd/error_log message. > > > > CMD: echo "graph - DEF:var1=localhost/_HOST_.rrd:1:AVERAGE > > "CDEF:sp1=var1,100,/,12,*" "CDEF:sp2=var1,100,/,30,*" > > "CDEF:sp3=var1,100,/,50,*" "CDEF:sp4=var1,100,/,70,*" > > AREA:var1#FF5C00:"Round_Trip_Times " AREA:sp4#FF7C00: AREA:sp3#FF9C00: > > AREA:sp2#FFBC00: AREA:sp1#FFDC00: GPRINT:var1:LAST:"%6.2lf " > > GPRINT:var1:MAX:"%6.2lf " GPRINT:var1:AVERAGE:"%6.2lf" > > LINE1:var1#000000:""" | nc 192.168.122.32 13900 RETURNCODE: 0 > > > > Perplexing. Anybody had any luck with getting around my "bug, and/or remote > > PHP graph display???? > > > > Regs, Stephen > > > > If you reply to this email, your message will be added to the discussion > > below: > > http://rrd-mailinglists.937164.n2.nabble.com/ERROR-T-is-not-a-valid-function-name-issue-with-spaces-between-double-quotes-tp7388328p7388337.html > > To unsubscribe from ERROR: 'T' is not a valid function name - issue with > > spaces between double quotes?, click here. > > NAML > > > -- > View this message in context: > http://rrd-mailinglists.937164.n2.nabble.com/ERROR-T-is-not-a-valid-function-name-issue-with-spaces-between-double-quotes-tp7388328p7388358.html > Sent from the RRDtool Users Mailinglist mailing list archive at Nabble.com. > > _______________________________________________ > rrd-users mailing list > [email protected] > https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users > > -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland http://it.oetiker.ch [email protected] ++41 62 775 9902 / sb: -9900 _______________________________________________ rrd-users mailing list [email protected] https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users
