#!/usr/bin/perl
my
%opt
;
my
(
$opt_help
,
$opt_man
);
GetOptions(
'community=s'
=> \
$opt
{
'community'
},
'Clear!'
=> \
$opt
{
'clear'
},
'lines=s'
=> \
$opt
{
'lines'
},
'message=s'
=> \
$opt
{
'message'
},
'quantity!'
=> \
$opt
{
'quantity'
},
'help!'
=> \
$opt_help
,
'man!'
=> \
$opt_man
) or pod2usage(
-verbose
=> 0);
pod2usage(
-verbose
=> 1)
if
defined
$opt_help
;
pod2usage(
-verbose
=> 2)
if
defined
$opt_man
;
if
(!
@ARGV
) {
pod2usage(
-verbose
=> 0,
-message
=>
"$0: host required\n"
)
}
$opt
{
'community'
} =
$opt
{
'community'
} ||
'private'
;
for
(
@ARGV
) {
print
"\n-- $_ --\n"
;
my
$cm
;
if
(!
defined
(
$cm
= Cisco::Management->new(
hostname
=>
$_
,
community
=>
$opt
{
'community'
}
))) {
printf
"Error: %s\n"
, Cisco::Management->error;
next
}
if
(
defined
(
$opt
{
'quantity'
})) {
if
(
defined
(
my
$lines
=
$cm
->line_numberof())) {
print
"$_: Lines = $lines\n"
}
else
{
printf
"Error: %s\n"
, Cisco::Management->error
}
}
if
(
defined
(
$opt
{
'message'
})) {
my
%params
;
if
(
defined
(
$opt
{
'lines'
})) {
$params
{
'lines'
} =
$opt
{
'lines'
} }
if
(
defined
(
$opt
{
'message'
})) {
$params
{
'message'
} =
$opt
{
'message'
} }
if
(
defined
(
my
$lines
=
$cm
->line_message(
%params
))) {
print
"$_: Messaged lines = @{$lines}\n"
}
else
{
printf
"Error: %s\n"
, Cisco::Management->error
}
}
if
(
defined
(
$opt
{
'clear'
})) {
my
%params
;
if
(
defined
(
$opt
{
'lines'
})) {
$params
{
'lines'
} =
$opt
{
'lines'
} }
if
(
defined
(
my
$lines
=
$cm
->line_clear(
%params
))) {
print
"$_: Cleared lines = @{$lines}\n"
}
else
{
printf
"Error: %s\n"
, Cisco::Management->error
}
}
if
((!
defined
(
$opt
{
'quantity'
})) &&
(!
defined
(
$opt
{
'message'
} )) &&
(!
defined
(
$opt
{
'clear'
} ))) {
if
(
defined
(
my
$lines
=
$cm
->line_info())) {
my
$sessions
=
$cm
->line_sessions();
print
"Line Type Active\n"
;
print
"----------------\n"
;
for
my
$line
(
sort
{
$a
<=>
$b
} (
keys
(%{
$lines
}))) {
printf
"%4i %-5s "
,
$line
,
$lines
->{
$line
}->{Type};
if
(
$lines
->{
$line
}->{Active} == 1) {
print
"YES"
;
if
(
exists
(
$sessions
->{
$line
})) {
for
(0..$
print
" ($sessions->{$line}->[$_]->{'Type'}://$sessions->{$line}->[$_]->{'Address'} [$sessions->{$line}->[$_]->{'Direction'}])"
}
}
}
else
{
print
" NO"
}
print
"\n"
}
}
else
{
printf
"Error: %s\n"
, Cisco::Management->error
}
}
$cm
->
close
()
}