Loading ...
Sorry, an error occurred while loading the content.

Re: [PBML] 1st PERL script up for review

Expand Messages
  • merlyn@stonehenge.com
    ... Bruce I ve just finished my first PERL script, By the way, there s no such thing as PERL , unless you re talking about Protecting Escarpment Rural
    Message 1 of 4 , Nov 29, 2007
    • 0 Attachment
      >>>>> "Bruce" == Bruce Henderson <BHenderson@...> writes:

      Bruce> I've just finished my first PERL script,

      By the way, there's no such thing as "PERL", unless you're talking about
      "Protecting Escarpment Rural Lands", as displayed on
      http://www.perlofburlington.org/.

      If you're talking about the programming language, it's "Perl".
      If you're talking about the command-line utility, it's "perl".

      And no, we're not just being nitpicky. Consider it a secret handshake, so
      that you can quickly tell who is clued-in, and who is just being a poser.

      --
      Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
      <merlyn@...> <URL:http://www.stonehenge.com/merlyn/>
      Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
      See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
    • JC
      Hi Bruce, Congrats on taking the first step One of the important things that we ve found is also check for the errmsg. The TFTP server Might not always be
      Message 2 of 4 , Nov 29, 2007
      • 0 Attachment
        Hi Bruce,

        Congrats on taking the first step

        One of the important things that we've found is also check for the errmsg. The TFTP server Might not always be available or the file copy might fail or myriad of other things.You can read more about errmsg in the Net::Telnet docs. But I've seen code that essentially just does

        if($session->errmsg) {
        # Do your error handling here like
        print LOG "Error: " . $session->lastline;
        }

        Best,

        JC




        ----- Original Message ----
        From: Bruce Henderson <BHenderson@...>
        To: perl-beginner@yahoogroups.com
        Sent: Thursday, November 29, 2007 8:57:38 AM
        Subject: [PBML] 1st PERL script up for review














        Hello,



        I've just finished my first PERL script, one of many to come I hope, and

        was hoping that someone could look at it and give me some feedback on

        its structure. This script is used to backup our Cisco switch and

        router configs. I obtained most of the code from the documentation of

        Net::Telnet: :Cisco and Text::CSV modules. Anyways the script works

        which was my first goal now I would love to learn a bit more about it.



        Any info would be great. Thanks.



        Switch-configs. pl



        #!/usr/bin/perl



        #



        # ./switch-configs. pl 'tftp server address' 'CSV file'



        #



        use Net::Telnet: :Cisco;



        use Text::CSV;



        my @locations;



        my $csv = Text::CSV->new( );



        my $backup_host = $ARGV[0];



        open (FILE, $ARGV[1]) or die "Couldn't open location file: $!";



        while (<FILE>) {



        $csv->parse( $_);



        push(@locations, [$csv->fields] );



        }



        close FILE;



        my $total = @locations;



        for ($count = 1; $count <= $total; $count++) {



        my $session = Net::Telnet: :Cisco->new( Host => $locations[$ count][0] );



        $session->login( 'login', 'password');



        #Coping the config via TFTP



        if ($session->enable( "password" ) ) {



        $session->cmd( "copy system:/running- config " .

        "tftp://$backup_ host/$locations[$count][1]\ n\n\n");



        } else {



        warn "Can't enable: " . $session->errmsg;



        }



        $session->close;



        }



        Sample CSV data



        address,hostname



        10.24.1.10,CUF



        10.24.1.11,L122- 3



        10.24.1.13,SS



        10.24.1.14,ITS- PBX



        10.24.1.15,EAST- TS



        10.24.1.16,LIZ- B



        ____________ _________ ________



        Bruce Henderson



        Network Administrator



        Concordia University - Portland



        (503) 493-6481



        [Non-text portions of this message have been removed]














        <!--

        #ygrp-mkp{
        border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;}
        #ygrp-mkp hr{
        border:1px solid #d8d8d8;}
        #ygrp-mkp #hd{
        color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;}
        #ygrp-mkp #ads{
        margin-bottom:10px;}
        #ygrp-mkp .ad{
        padding:0 0;}
        #ygrp-mkp .ad a{
        color:#0000ff;text-decoration:none;}
        -->



        <!--

        #ygrp-sponsor #ygrp-lc{
        font-family:Arial;}
        #ygrp-sponsor #ygrp-lc #hd{
        margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
        #ygrp-sponsor #ygrp-lc .ad{
        margin-bottom:10px;padding:0 0;}
        -->



        <!--

        #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;}
        #ygrp-mlmsg table {font-size:inherit;font:100%;}
        #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, sans-serif;}
        #ygrp-mlmsg pre, code {font:115% monospace;}
        #ygrp-mlmsg * {line-height:1.22em;}
        #ygrp-text{
        font-family:Georgia;
        }
        #ygrp-text p{
        margin:0 0 1em 0;}
        #ygrp-tpmsgs{
        font-family:Arial;
        clear:both;}
        #ygrp-vitnav{
        padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
        #ygrp-vitnav a{
        padding:0 1px;}
        #ygrp-actbar{
        clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
        #ygrp-actbar .left{
        float:left;white-space:nowrap;}
        .bld{font-weight:bold;}
        #ygrp-grft{
        font-family:Verdana;font-size:77%;padding:15px 0;}
        #ygrp-ft{
        font-family:verdana;font-size:77%;border-top:1px solid #666;
        padding:5px 0;
        }
        #ygrp-mlmsg #logo{
        padding-bottom:10px;}

        #ygrp-vital{
        background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
        #ygrp-vital #vithd{
        font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
        #ygrp-vital ul{
        padding:0;margin:2px 0;}
        #ygrp-vital ul li{
        list-style-type:none;clear:both;border:1px solid #e0ecee;
        }
        #ygrp-vital ul li .ct{
        font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
        #ygrp-vital ul li .cat{
        font-weight:bold;}
        #ygrp-vital a{
        text-decoration:none;}

        #ygrp-vital a:hover{
        text-decoration:underline;}

        #ygrp-sponsor #hd{
        color:#999;font-size:77%;}
        #ygrp-sponsor #ov{
        padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
        #ygrp-sponsor #ov ul{
        padding:0 0 0 8px;margin:0;}
        #ygrp-sponsor #ov li{
        list-style-type:square;padding:6px 0;font-size:77%;}
        #ygrp-sponsor #ov li a{
        text-decoration:none;font-size:130%;}
        #ygrp-sponsor #nc{
        background-color:#eee;margin-bottom:20px;padding:0 8px;}
        #ygrp-sponsor .ad{
        padding:8px 0;}
        #ygrp-sponsor .ad #hd1{
        font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
        #ygrp-sponsor .ad a{
        text-decoration:none;}
        #ygrp-sponsor .ad a:hover{
        text-decoration:underline;}
        #ygrp-sponsor .ad p{
        margin:0;}
        o{font-size:0;}
        .MsoNormal{
        margin:0 0 0 0;}
        #ygrp-text tt{
        font-size:120%;}
        blockquote{margin:0 0 0 4px;}
        .replbq{margin:4;}
        -->








        ____________________________________________________________________________________
        Be a better pen pal.
        Text or chat with friends inside Yahoo! Mail. See how. http://overview.mail.yahoo.com/

        [Non-text portions of this message have been removed]
      Your message has been successfully submitted and would be delivered to recipients shortly.