#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2012
    Posts
    1
    Rep Power
    0

    Perl script host loop


    Hello;

    While this script working, in case of not to connect a node ("BADYK01","BAGRK01", "BAHLK01", "BAHLK02", "BAHLK03") , it stops.

    I want it to be continue even if it doesnt connect a node. I mean if it couldnt connect to BAGRK01, I want it to be continue and connect the other node BAHLK01.

    Thanks


    PHP Code:
        # $interface = "1.0"
        # This PerlScript example iterates through an array of three session names
        # connecting to each one in turn. The unix 'df' command is
        # sent to each server and the output is captured to a logfile.
        
    TEST1:
        
    # Enable errors
        #
        
    use Win32::OLE;
        
    Win32::OLE->Option(Warn => 3);
        
    #unlink <*.txt>;
        
    $crt->Session->Disconnect();
        
    # An array of session names to connect to.
        
    @sessions = ("BADYK01","BAGRK01""BAHLK01""BAHLK02""BAHLK03");
        
    # define some useful constants
        #
        
    $true 1;
        
    $false 0;
        
    $StartLog $true;
        
    $StopLog $false;
        
    $Append $true;
        
    $Overwrite $false;
        
    $Raw $true;
        
    $Not_raw $false;
        
    # NOTE: Set your logfile path here
        #
        #$LogFile = "LOG.txt";
        #$LogFile = "$LOG.log";
        #
        
    $crt->Screen->{'Synchronous'} = $true;
        
    # Loop thru the array of sessions
        #
        
    for ($i 0$i 5$i++) {
        
    # Connect to each session using the "/s sessionname" argument.
        #
        
    $crt->Session->Connect("/s " $sessions[$i]);
        
    # Wait for 5 seconds, or until the login prompt appears.
        #
        
    $crt->Screen->WaitForString("MAIN LEVEL COMMAND <___>");
        
    # Set the name of the logfile for this session.
        #
        
    $crt->Session->{'LogFileName'} = LOG ".txt";
        
    # Enable logging
        #
        
    $crt->Session->Log($StartLog,$Append);
        
    # Send the 'df' command followed by a CR (octal 015)
        #
        
    $crt->Screen->Send("EOL:;\015");
        
    $crt->Screen->WaitForString("BASE TRANSCEIVER STATION ALARMS HANDLING COMMAND <EO_>");
        
    $crt->Session->Log($StopLog);
        
    $crt->Session->Disconnect();
        }
        
    $crt->Screen->{'Synchronous'} = $false
  2. #2
  3. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Apr 2012
    Location
    spaceBAR Central
    Posts
    225
    Rep Power
    41
    Can you try something like this for your connection so that you would handle any errors instead of having "Win32::OLE" invoke croak:

    Code:
    Win32::OLE->Option(Warn => 0);
    my $ret_code  =  0;
    $crt->Session->Connect("/s " . $sessions[$i]) or $ret_code = 1;
    
    if ( $ret_code != 0 ) {
      print "**Error occurred connecting to session($sessions[$i])," .
            "Error_Code: "  . Win32::OLE->LastError()  . "\n";
    }

IMN logo majestic logo threadwatch logo seochat tools logo