user3101182
user3101182

Reputation: 138

psftp error flag using in perl

The script below functions just as intended. It calls the batch file which establishes a connection using PUTTY or scpecically psftp and transfers a handful of file. Once the transfer is complete i continue with the perl script to move the files to another directory.

My question is how could I capture an error from the PSFTP application? If there is an error xfering or establishing a connection i would like to generate a flag which then i could capture in perl and stop anything else from happening and send me an email. I just need guidance on generating the flag from the PSFTP application on error.

Thank you very much in advance!

My

use warnings;
use File::Copy;


my $TheInputDir = "//NT6/InfoSys/PatientSurvey/Invision/CFVMC/";
my $TheMoveDir = "//NT6/InfoSys/PatientSurvey/Invision/CFVMC/Completed";

system ('2166_PG_Upload_Batch.bat');


opendir (THEINPUTDIR, $TheInputDir);
@TheFiles = readdir(THEINPUTDIR);
close THEINPUTDIR;


#Get all the files that meet the naming convention
foreach $TheFile(@TheFiles) 
{
    if($TheFile =~ /2166/)
    {
        print "$TheFile\n";
        move ("$TheInputDir$TheFile","$TheMoveDir");

    }
}

Upvotes: 0

Views: 148

Answers (1)

Arunesh Singh
Arunesh Singh

Reputation: 3535

You should read STDERR from your application into Perl. For that use Capture::Tiny

my ($stdout, $stderr, $exit) = capture {
     system('2166_PG_Upload_Batch.bat');
   };  
#check for $stderr and do your stuffs i.e sending email etc

For more info refer perlfaq

Upvotes: 2

Related Questions