2016-05-12 26 views
0

Ich muss für jeden Fehler verschiedene SFTP Exit-Codes erhalten. Zum Beispiel ‚keine solche Datei oder das Verzeichnis‘ -> Exit-Code = 552 oder 550 statt Rückkehr 1. Ich habe versucht, die folgenden und es hat nicht funktioniert:Wie man SFTP cozbatch verschiedene Fehlercodes zurückgeben kann

//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                  
//*  

und die Ausgabe in Spool ist:

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                   

Kann mir jemand helfen?

Antwort

0

Ihr Problem kann einfach die echo `$ a` sein. Versuchen Sie, Anführungszeichen anstelle von Teilstrichen einzufügen.

Allgemeiner, wenn Sie detailliertere Fehlerprüfung durchführen möchten, anstatt das SFTP-Verfahren (SFTPROC) zu verwenden, denke ich, dass Sie besser ein einfaches Skript schreiben würden, das Sie mit BPXBATCH ausführen. Das Skript würde die gleichen SFTP-Befehle ausgeben, aber Sie könnten die Ausgabe erfassen und umleiten (STDOUT/STDERR) und basierend auf dem Rückgabewert ($?) Und eventuellen Fehlermeldungen könnten Sie sicherlich alle ungewöhnlichen Bedingungen entdecken, die Sie vielleicht wollen.

+0

Ich muss den SFTP-Prozess ausführen. Ich habe einzelne Anführungszeichen, aber es funktioniert immer noch nicht. Vielen Dank. –

1

Mit COZBATCH können Sie Shell-Skripts in JCL einbetten, sodass Sie BPXBATCH nicht verwenden müssen. BPXBATCH ist wirklich ein schlechtes Dienstprogramm. Wenn Sie Co: Z verwenden, dann ist es gut für Sie, es rockt.

Wenn Sie Shell-Befehle ausführen möchten, müssen Sie die verwenden! Escape-Zeichen.

! Echo ein

FWIW

$, SFTP gibt immer 1 auf Fehler. Ich bin mir nicht sicher, ob du das ändern kannst. Fehler sollten im Sysout protokolliert werden.