ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

FTP to Mainframe

Updated on April 16, 2018

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. If you are within windows, you can merely run the cmd command to get a DOS prompt where you can execute ftp requests. In other environments or platforms such as Unix or Linux, you can type the ftp command at the prompt. Accessing Unix or Linux directly, you may use tools such as Putty or Telnet.

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 IBM MVS/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





Code Page Conversion

There may be cases that depending on mainframe and server the conversions of brackets don't occur correctly. The following SBD code should assist to assure that it uses the conversion tabel IBM-037 and that the brackets are converted appropriately.

//STEP1 EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//OUTPUT DD SYSOUT=*
//INPUT DD *
354.354.354.1
userid
userpassword
ascii
locsite sbd=(IBM-037,ISO8859-1)
lcd 'MYID.TEST.SOURCE.DIR'
cd /export/home/user
prompt no
mput *
quit
/*

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)