Код:
#!/usr/bin/perl
use Net::SNMP;
$set_ip="1.3.6.1.4.1.171.12.1.2.1.1.3.1";
$send_type="1.3.6.1.4.1.171.12.1.2.1.1.4.1";
$file_name="1.3.6.1.4.1.171.12.1.2.1.1.5.1";
$way="1.3.6.1.4.1.171.12.1.2.1.1.7.1";
$beg="1.3.6.1.4.1.171.12.1.2.1.1.8.1";
$community="comm_name";
$tftp="10.5.0.4"; # IP TFTP-сервера
$fw_name="DES_3028_52_V2.54-B03.had"; # Имя загружаемой прошивки на TFTP
# Список обновляемых устройств
@devices = (<<"DEVICES" =~ m/^s*(.+)/gm);
10.0.37.61
DEVICES
$c=1;
foreach $dev (@devices) {
($session,$error) = Net::SNMP->session(Hostname=>$dev,Community=>$community);
# Устанавливаем IP TFTP-сервера
$session->set_request(-varbindlist=>[$set_ip,IPADDRESS,$tftp]);
# Выставляем тип передачи в "Загрузка по сети"
$session->set_request(-varbindlist=>[$send_type,INTEGER,2]);
# Задаём имя файла
$session->set_request(-varbindlist=>[$file_name,OCTET_STRING,$fw_name]);
# Направление загрузки - Download
$session->set_request(-varbindlist=>[$way,INTEGER,3]);
# СТААААААРТ!!!
$session->set_request(-varbindlist=>[$beg,INTEGER,3]);
print $c.") ".$dev."\n";
$c++;
}
print "\nThe End!\n"
Работает для серий 3000 и 3028.
Единственное, для 3028 надо добавить ребут, чтоб он с новой прошивкой загрузился.