A unix FTP has no concept of a record like on the mainframe side. To unix it's just a stream of characters. With the exception that for an ASCII transfer, it does do on the fly conversion to valid unix ASCII text based on the sending system (i.e. stripping CR's from MS Windows, and EBCDIC to ASCII conversion from IBM mainframes).
The FTP client on unix
CAN change some properties of the FTP server,
IF the FTP server supports it and allows it. The command to pass these commands to the FTP server from the client is "[tt]QUOTE SITE[/tt]".
The following is some code that I'm using to send a file to an IBM mainframe from a unix machine (names have been changed to protect the innocent). There's no login commands because I'm using a [tt].netrc[/tt] file for the username and password.
Code:
ftp mvs123.mycompany.com <<-FTPCMDS
quote site vol=abc123
quote site recfm=fb lrecl=196 blksize=9800
quote site primary=100 secondary=10
put filename.YYYYMMDD.DAT <destination file name>
bye
FTPCMDS
I don't quite remember what all of the values are for. They were given to me by the mainframe guy when I was setting this up. When I was just doing a [tt]put[/tt] without the [tt]quote site[/tt] commands, it was chopping the file into 80 byte fixed length records (the size of an IBM punched card, heh heh).
Anyway, you can probably find some parameters that will get you what you need. I found all of what I needed with a Google search. Maybe try Googling for "quote site" and see what you get.
You could also probably use the "garbage unreadable file" you got when doing the binary transfer. This file should be all correct, it's just that it's in EBCDIC, not ASCII. You can use a [tt]dd[/tt] command to convert it to ASCII. See the [tt]man[/tt] page for help on using it. There are a number of options depending on the format of the file on the mainframe side.
Hope this helps.