My script is supposed to do 'set' request table on the device for config backup
my @request;
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.2.$rand_value",INTEGER,
+6));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.3.$rand_value",INTEGER,
+1));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.4.$rand_value",OCTET_ST
+RING,"$device_name"));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.5.$rand_value",IPADDRES
+S,'192.168.0.1'));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.6.$rand_value",OCTET_ST
+RING,'user'));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.7.$rand_value",OCTET_ST
+RING,'password'));
push(@request, ("1.3.6.1.4.1.2011.6.10.1.2.4.1.9.$rand_value",INTEGER,
+4));
my ($session, $error) = Net::SNMP->session(
-hostname => $device_ip,
-version => 'snmpv1',
-community => $device_comunity,
);
$result = $session->set_request(-varbindlist=>[@request]);
if (!defined $result) {
printf "ERROR: %s\n", $session->error();
$session->close();
exit 1;
}
$session->close();
but it does not work and the device displays a message in the log
Aug 4 2013 21:08:33+03:00 device %%01SNMP/4/SNMP_SET(l)[0]:MIB node set. (SourceIP=192.168.0.1, RequestId=376206003, ErrorStatus=7, ErrorIndex=7, hwCfgOperateRowStatus.2667=4)
But request directly from the command line works
snmpset -v 1 -c private 192.168.0.2 .1.3.6.1.4.1.2011.6.10.1.2.4.1.2.1
+003 i 6
.1.3.6.1.4.1.2011.6.10.1.2.4.1.3.1003 i 1 .1.3.6.1.4.1.2011.6.10.1.2.
+4.1.4.1003 s 'config.cfg'
.1.3.6.1.4.1.2011.6.10.1.2.4.1.5.1003 a 192.168.0.1 .1.3.6.1.4.1.2011.
+6.10.1.2.4.1.6.1003 s 'user'
.1.3.6.1.4.1.2011.6.10.1.2.4.1.7.1003 s 'password' .1.3.6.1.4.1.2011.6
+.10.1.2.4.1.9.1003 i 4
what am I doing wrong?