#! /usr/bin/perl use Getopt::Long; sub show_view() { print <= 20 ) { print "$group\n $view($mode)\n"; } else { $~ = "GROUP_FORMAT"; format GROUP_FORMAT = @<<<<<<<<<<<<<<<<<< @*(@*) $group $view $mode . write; } } print "\n"; } sub show_user() { print <= 20 ) { print "$user\n $auth $priv $mode $group\n"; } else { $~ = "USER_FORMAT"; format USER_FORMAT = @<<<<<<<<<<<<<<<<<< @<<< @<<< @<<< @* $user $auth $priv $mode $group . write; } } print "\n"; } sub show_trap() { print <= 30 ) { $~ = "TRAP_BIG_FORMAT"; format TRAP_BIG_FORMAT = ^* $trap @<<<<< @<<<<<<< @<<< @<<< @<<<<< @<<<<<<<<<<<<<<<<<<<<... @* $port $protocol $auth $priv $type $engineid $user . write; } else { $~ = "TRAP_FORMAT"; format TRAP_FORMAT = @<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<< @<<<<<<< @<<< @<<< @<<<<< @<<<<<<<<<<<<<<<<<<<<... @* $trap $port $protocol $auth $priv $type $engineid $user . write; } } print "\n"; } sub show_all() { show_user(); show_group(); show_view(); show_trap(); } sub listNodes { my $path = shift; my @nodes = split( ' ', `cli-shell-api listActiveNodes service snmp v3 $path` ); return map { substr $_, 1, -1 } @nodes; } sub returnValue { my $path = shift; my $value = `cli-shell-api returnActiveValue service snmp v3 $path`; return $value; } sub isExists { my $path = shift; system("cli-shell-api existsActive service snmp v3 $path"); return !$?; } my $all; my $view; my $group; my $user; my $trap; GetOptions( "all!" => \$all, "view!" => \$view, "group!" => \$group, "user!" => \$user, "trap!" => \$trap, ); show_all() if ($all); show_view() if ($view); show_group() if ($group); show_user() if ($user); show_trap() if ($trap);