December 2006
Intermediate to advanced
1188 pages
72h 8m
English
You want to build a report of important router information for all of your managed routers.
The following Perl script extracts important router information—such as router name, physical location, contact name, and serial number from a list of routers—and creates a report of this information. The script is intended to be run manually, and no arguments are required or expected.
Here’s some example output:
Freebsd% ./inventory.pl
Router Location Contact Serial
Router 999 Queen St. W., Toronto, Ont Ian Brown 416-555-2943 JAX123456
Boston 1273 Main Street, Boston, MA Bob Irwin 800-555-1221 JAX231567
Denver 24 Sussex Drive, Denver, CO Helpdesk 800-555-2992 JAX928362
Frame 999 Queen St. W., Toronto, Ont Ian Brown 416-555-2943 JAX212321
Toronto 999 Queen St. W., Toronto, Ont Ian Brown 416-555-2943 JAX283291
Boston2 1273 Main Street, Boston, MA Bob Irwin 800-555-1221 JAX292228
Denver2 24 Sussex Drive, Denver, CO Helpdesk 800-555-2992 JAX219115
Freebsd%The Perl code follows in Example 17-1.
Example 17-1. inventory.pl
#!/usr/bin/perl # # inventory.pl -- a script to extract valuable information # from a Router. (Name, Location, Contact, S/N) # # # Set behavior $workingdir="/home/nms"; $snmpro="ORARO"; $rtrlist="$workingdir/RTR_LIST"; # # open (RTR, "$rtrlist") || die "Can't open $rtrlist file"; open (LOG, ">$workingdir/RESULT") || die "Can't open $workingdir/RESULT file"; printf " Router\t\t Location\t\t\tContact\t\t ...