csbl
csbl

Reputation: 265

How to make SFTP cozbatch return different error codes

I need to get different SFTP exit codes for each error. For instance 'no such file or directory' --> exit code=552 or 550 instead of returning 1. I've tried the following and it did not work:

//A05FTP   EXEC PROC=SFTPROC,COND=(0,NE)                                
//COPSFTP.MYSTDIN DD *                                                  
host="xpto.xpty.xptz"                                              
lzopts mode=text        
cd /home/apl/files/unl                         
ls                                                                      
a=`ls | wc -l`                                                         
echo `$a`                                                                
echo $?                                                                 
QUIT                                                                    
//*     

and the output in spool is:

 cozsftp> lzopts mode=text                          
 mode=text                                         
 cozsftp> lzopts mode=text                          
 mode=text                                         
 cozsftp> cd /home/apl/files/unl      
 Ý09.807¨ Invalid command.                          
 cozsftp> a=      1                                 
 CoZBatchÝI¨: returning      rc=exitcode=1                                                                         

Can anyone help me?

Upvotes: 0

Views: 1227

Answers (2)

David Crayford
David Crayford

Reputation: 571

COZBATCH allows you to embed shell scripts into JCL, so you don't need to use BPXBATCH. BPXBATCH really is a poor utility. If you're using Co:Z then good for you it rocks.

If you want to run shell commands you need to use the ! escape character.

!echo $a

FWIW, SFTP always returns 1 on error. I'm not sure if you can change that. Errors should be logged in the sysout.

Upvotes: 1

Valerie R
Valerie R

Reputation: 1817

Your problem may simply be the echo `$a`. Try enclosing with quotes instead of tick marks.

More generally, if you want to do more detailed error checking, instead of using the SFTP procedure (SFTPROC), I think you'd do better to write yourself a simple script that you execute with BPXBATCH. The script would issue the same SFTP commands, but you could capture and redirect the output (STDOUT/STDERR) and based on the return value ($?) and any error messages, you could certainly detect all the unusual conditions you might want.

Upvotes: 0

Related Questions