FTP TO MAINFRAME

FTP help

FTP to the mainframe can be accomplish by issuing the ftp command at the DOS prompt followed by the IP address provided the firewall is open.

         ftp 255.255.255.255

You will be prompted for a userid and password. After the information is provided you should see a message 230 like the one below.

C:\>ftp 255.255.255.255
Connected to 255.255.255.255.
220-FTP831 IBM FTP CS V1R7 at DEV1, 09:59:02 on 2007-01-08.
220 Connection will close if idle for more than 30 minutes.
User (255.255.255.255:(none)): USERID
331 Send password please.
Password:
230 USERID is logged on.  Working directory is "USERID.".
ftp>

You can now issue a put or a get depending on whether you are sending data to the mainframe or retrieving data from the mainframe.

Sending JCL to the input reader works basically the same way as ftping a file. Once you log on to the mainframe via FTP, simply type the command:

       quote site filetype=jes

This will connect you to the jesplex. At this point you can issue a DIR to list jobs under your userid. The JCL you submit should have your userid followed by 1 character in order for you to be able to retrieve the output. Sending the JCL to the input reader is a matter of simply issuing a put command:

         put USERIDx.txt

You will see the following output after you issue the command.

ftp> put USERIDx.jcl
200 Port request OK.
125 Sending Job to JES internal reader FIXrecfm 80
250-It is known to JES as JOB02569
250 Transfer completed successfully.
ftp: 754 bytes sent in 0.00Seconds 754000.00Kbytes/sec.

You can retrieve the output from the JCL ran by simply issuing a get against the job. In the example above the job is JOB02569. You can get the first sysout of this job by simply issuing a get JOB02569.1 or get all the output from the job by issuing a get JOB02569.x as shown below:

 
ftp> get JOB02569.1 USERIDx-JESMSGLG.txt
200 Port request OK.
125 Sending data set USERID.USERIDX.JOB02569.D0000002.JESMSGLG
250 Transfer completed successfully.
ftp: 2409 bytes received in 0.02Seconds 120.45Kbytes/sec.
ftp> get JOB02569.x USERIDx-JOB02569.txt
200 Port request OK.
125 Sending all spool files for requested Jobid
250 Transfer completed successfully.
ftp: 9669 bytes received in 0.45Seconds 21.49Kbytes/sec

 

FTP Batch

You can put all the ftp commands into a text file and run the request using batch commands as follows.

The contents of myfile.txt are as follows..

 
ftp> get JOB02569.1 USERIDx-JESMSGLG.txt
200 Port request OK.
125 Sending data set USERID.USERIDX.JOB02569.D0000002.JESMSGLG
250 Transfer completed successfully.
ftp: 2409 bytes received in 0.02Seconds 120.45Kbytes/sec.
ftp> get JOB02569.x USERIDx-JOB02569.txt
200 Port request OK.
125 Sending all spool files for requested Jobid
250 Transfer completed successfully.
ftp: 9669 bytes received in 0.45Seconds 21.49Kbytes/sec

You can simply issue an ftp command to use this input file and send the output to a log file by issuing the following command:

       ftp –s:myfile.txt > myfile.log

The contents of the log file will contain all the ftp messages:

ftp> Connected to 255.255.255.255.
open 255.255.255.255
220-FTP831 IBM FTP CS V1R7 at DEV1, 10:18:46 on 2007-01-08.
220 Connection will close if idle for more than 30 minutes.
User (255.255.255.255:(none)):
331 Send password please.
 
230 USERID is logged on. Working directory is "USERID.".
ftp> quote site filetype=jes
200 SITE command was accepted
ftp> ftp> put USERIDx
USERIDx: File not found
quit
221 Quit command received. Goodbye.

Batch FTP Example 2

The following examples shows how within a UNIX script you can ftp to mainframe internal reader for JCL processing.

#!/usr/bin/ksh

# destionation IP address
DEST=$1 
# Mainframe userid
USERID=$1 
#Mainframe Passwd
PASSWD=$2  
#JCL
JCLMEM=test.jcl


ftp -v -n $DEST << EOF
user $USERID \
$PASSWD
quote site filetype=jes
put $JCLMEM
quit
EOF

Retrieving job from JES

Add following to script above


sleep 10
JOB=`cat $LOGFILE|sed -n '/250-It/P'|awk '{pirint substr($0,index($0,"JOB"),8)}'`
 
echo "Retrieving ${JOB}"
 
ftp -v -n $DEST << EOF >> $LOGFILE
user $USERID \
$PASSWD
quote site filetype=jes
get ${JOB}.x ${JOB}.log
quit
EOF
 
cat ${JOB}.log





Comments

No comments yet.

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working