![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| whopix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.12.2011 Репутация: нет Всего: нет |
Здравствуйте, есть два вопроса
1) чем вывод echo в php отличается от вывода print в perl (это все делается для cacti)? 2) Помогите дописать, переписать, написать скрипт. написал на php на perl не получается. вот как на пхп #!/usr/local/bin/php <?php $i=0; $snmp="snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.3.59.1.1.2.1.4.239.0.2 | grep 239.0.2 | grep IpAddress | grep -v 192.168.201"; exec($snmp,$result); $snmp="snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.3.59.1.1.2.1.4.239.0.2 | grep 239.0.2 | grep IpAddress | grep -v 192.168.201"; exec($snmp,$result); while ($i < 255) { $str=str_replace(".239.0.2.".$i.".","",$result,$count); if ($count<>0) print $i.":".$count." "; $i++; } ?> вывод этого скрипта будет вот таким: 4:1 7:2 40:3 53:1 58:1 69:1 70:1 71:2 а структура (дерево) которую он опрашивает вот такая (snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.3.59.1.1.2.1.4.239.0.2 | grep 239.0.2 | grep IpAddress | grep -v 192.168.201) SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.7.125 = IpAddress: 192.168.25.95 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.40.125 = IpAddress: 192.168.25.103 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.40.138 = IpAddress: 192.168.38.21 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.40.939 = IpAddress: 192.168.202.53 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.70.133 = IpAddress: 192.168.33.99 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.71.130 = IpAddress: 192.168.30.162 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.76.305 = IpAddress: 192.168.105.64 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.82.115 = IpAddress: 192.168.15.175 смысл такой чтобы опросить устройство по snmp определенный oid подсчитать кол-во одинаковых полей и вывести номер этого поля. для примера SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.40.125 = IpAddress: 192.168.25.103 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.40.138 = IpAddress: 192.168.38.21 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.70.133 = IpAddress: 192.168.33.99 должен вывести 40:2 70:1 в принципе на php он тоже не совсем корректен и требует доработок, но выдает нужное. но к сожалению нужно переписать на perl. на перле делал по разному, получилось сделать вывод выборки но посчитать не получилось, в php начинающий в перле еще хуже(но учусь). помогите если не сложно, заранее спасибо. Это сообщение отредактировал(а) whopix - 20.12.2011, 07:11 |
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
Код перловый покажите.
|
|||
|
||||
| whopix |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.12.2011 Репутация: нет Всего: нет |
самый простой
my $x=system "snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.3.59.1.1.2.1.4.239.0 | grep 239.0.2 | grep IpAddress | grep -v 192.168.201"; print @x; вывод такой: SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.44.130 = IpAddress: 192.168.30.162 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.51.305 = IpAddress: 192.168.30.81 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.70.125 = IpAddress: 192.168.25.95 SNMPv2-SMI::experimental.59.1.1.2.1.4.239.0.2.70.133 = IpAddress: 192.168.33.42 более сложный, этот на нескольких сайтах видел use strict; use warnings; use diagnostics; use Net::SNMP; my $snmp_host = '127.0.0.1'; my $snmp_community = 'public'; my $snmp_oid = '1.3.6.1.3.59.1.1.2.1.4.239.0.2'; my $snmp_session = Net::SNMP->session( -hostname => $snmp_host, -community => $snmp_community, -version => 2, ) or die('Не удалось соединиться!'); my $result = $snmp_session->get_request( -varbindlist => [$snmp_oid], ) or die('Не удалось выполнить запрос!'); print "Значение OID $snmp_oid = $result->{$snmp_oid}\n"; $snmp_session->close(); вывод: Значение OID 1.3.6.1.3.59.1.1.2.1.4.239.0.2 = noSuchInstance т.е. вычисления не смог добавить только вывод пока Это сообщение отредактировал(а) whopix - 20.12.2011, 13:41 |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |