system does not capture the command's output, for that I would recommend capture or rather capturex from IPC::System::Simple. Perl does have this functionality built in, but I usually recommend staying away from it, for reasons I explained here (along with other modules and sample code). In addition, you should validate that $in and $out look as you expect before feeding them into rrdtool. Since AFAICT they should normally be numbers, I'm using Regexp::Common to validate them.
use warnings; use strict; use IPC::System::Simple qw/systemx capturex/; use Regexp::Common qw/number/; while (1) { my $in = capturex(qw/ snmpget -Oqv -v2c -c randomstr localhost 1. +3.6.1.2.1.31.1.1.1.7.3 /); my $out = capturex(qw/ snmpget -Oqv -v2c -c randomstr localhost 1. +3.6.1.2.1.31.1.1.1.11.3 /); for ($in,$out) { chomp; die "Bad number '$_'" unless /^$RE{num}{real}$/; } systemx('rrdtool','update','opit11.rrd',"N:$in:$out"); sleep 10; }
In reply to Re: Update RRD
by haukex
in thread Update RRD
by bachoA4o
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |