Você está na página 1de 4

The One AS/400 FTP Command You Must

Understand
Networking - General
Written by MC Press Contributing Author
Monday, 31 May 1999 18:00

If you’re using FTP to exchange files with an AS/400, you must understand the AS/400-
specific Select File Naming Format (NAMEFMT) FTP command. Executed with a
parameter of 0 or 1, NAMEFMT is a command that controls whether your FTP client
session can access file systems on an AS/400 Integrated File System (AS/400 IFS) besides
your DB2/400 data. NAMEFMT can be set on either an AS/400 FTP client or server
and—in addition to providing or denying access to AS/400 IFS file systems—it affects
how you code AS/400 path names to AS/400 IFS files you want to transfer.

In this article, I’m going to take a quick look at how you use NAMEFMT to facilitate FTP
transfers to and from an AS/400. I’ll look at the different parameters you use with
NAMEFMT and how they affect your pathname coding in other FTP commands (such as
GET, PUT, CD, and LCD).

Using NAMEFMT in an FTP Session

Here are some examples to give you a feel for how NAMEFMT is used and what it
provides.

If I start an FTP session to an AS/400, I could run NAMEFMT in the following formats
inside my AS/400-centric FTP session:

• NAMEFMT 0 (to change the naming convention on my FTP client and limit FTP access
to DB2/400 files only, if that client is an AS/400)

• QUOTE SITE NAMEFMT 0 (to change the naming convention on the AS/400 FTP
server I am attached to and to limit FTP access to DB2/400 files on that AS/400)

These commands tell an AS/400 to use a naming format that assumes I am transferring
files to and from the DB2/400 file system (the QSYS.LIB file system in the AS/400 IFS).
With NAMEFMT 0, I cannot perform file transfers from any other AS/400 IFS file
system except QSYS.LIB. So this effectively cuts off my access to the Root (/),
QOpenSys, QDLS, and the other AS/400 IFS file systems. It also affects the way I specify
my AS/400 working directories or libraries in my other FTP commands. When
NAMEFMT 0 is specified, I must use the following pathname naming convention in my
FTP command when I am referencing AS/400 QSYS.LIB libraries, files, and members:

[libname/]filename.membername
To execute an FTP GET statement to retrieve member JOE from file SOURCE in library
HERTVIK to my current local directory, I would issue the command as follows:

GET HERTVIK/SOURCE.JOE

The pathname syntax would also be the same for the MGET, GET, MPUT, CD, LCD, and
any other FTP command that uses a pathname as part of its command line. Because I am
only dealing with DB2/400 files when NAMEFMT = 0, I only specify which library, file,
and member names I am using. Nothing else is needed or accepted by OS/400.

Now, if I want to work with AS/400 files that reside in another AS/400 IFS file system
besides QSYS.LIB, I would first execute NAMEFMT in the following formats in my FTP
session:

• NAMEFMT 1 (to change the naming convention and AS/400 IFS file access on my FTP
client, if that client is an AS/400)

• QUOTE SITE NAMEFMT 1 (to change the naming convention and AS/400 IFS file
access on an AS/400 FTP server I am attached to)

These commands tell OS/400 that my client can access files in any AS/400 IFS file
system (such as Root, QOpenSys, and QDLS). It allows me to access any file residing on
my AS/400, provided I have the proper security to that file. However, when NAMEFMT
= 1, I must change the pathname naming convention for referencing a folder or file on the
AS/400 IFS to the following:

• /QSYS.LIB/libraryname.lib/filename.file/membername.mbr—when dealing with objects


in the QSYS.LIB file system

• /filesystem/directoryname/filename.extension—when dealing with non- QSYS.LIB file


systems. There may be slight variations for this format if you are FTPing a file from an
Optical file system (QOPT, where you have to specify the volume name before the
directory name) or for file systems where the directory name may also contain an
extension. But this is the main format for non-QSYS.LIB transfers.

So, using the NAMEFMT 1 convention, I would change my previous GET command to
the following syntax:

GET /QSYS.LIB/HERTVIK.LIB/SOURCE.FILE/JOE.MBR

Again, this syntax would be the same for any other FTP command that uses pathnames. I
need to be more literal here because OS/400 is now allowing me to access any AS/400
IFS file system, not just QSYS.LIB. For non-QSYS.LIB file systems, the naming
convention is different, based on the convention shown above. For example, if I’m
loading some HTML files to an AS/400 IFS folder called HERTVIK under the Root (/)
file system, I could change the directory on my host server AS/400 to this directory by
issuing the following Change Remote Working Directory (CD) command:

CD /HERTVIK

If HERTVIK were contained under the QDLS file system (where OS/400 stores the old
Client Access Shared Folder files), I would change the command to the following:

CD /QDLS/HERTVIK

So now, for any FTP command in which I need to specify a folder or a specific file path to
my non-QSYS.LIB AS/400 IFS, I would code those paths using this convention.

Getting Help

If you want more information on what naming convention to use with your particular
NAMEFMT settings, you can use the FTP help command when you’re running your FTP

session. If your FTP client is an AS/400, you can access IBM’s local help text for the
NAMEFMT command by typing in the following FTP command:

HELP NAMEFMT

If your FTP client is not an AS/400-based machine, you can retrieve your current
NAMEFMT settings and pathname configuration off your AS/400 FTP server by typing
in the HELP command in the following way:

QUOTE HELP NAMEFMT

You can also find additional information on using NAMEFMT at the online AS/400
Information Center (publib.boulder.ibm. com/pubs/html/as400/infocenter.htm). Once you
enter the Information Center, click on the following path to retrieve information about the
NAMEFMT command: Main/TCP/IP/ Transferring files (FTP)/File systems and naming
conventions supported by FTP/Specifying the format of file names.

A Few “Gotchas”

When working with NAMEFMT, I find it’s very important not to assume anything about
what your NAMEFMT values are set at. For example, if I’m conducting an FTP session
between two AS/400s, I can verify the NAMEFMT settings on both AS/400s by issuing
the NAMEFMT command without any parameters, as follows:
NAMEFMT

This command displays the NAMEFMT setting for each machine if both machines are
AS/400s. If my FTP host machine is an AS/400 and my FTP client machine is running on
another operating system (such as Windows 95 or UNIX), I can check the status of the
AS/400 NAMEFMT value by issuing the NAMEFMT command as follows:

QUOTE SITE NAMEFMT

For AS/400-AS/400 communications, if I want to change NAMEFMT to 1, I can type in


the NAMEFMT 1 command and OS/400 may change the settings on both machines.
However, it’s usually best to explicitly change those setting on each machine by issuing
the command to both your local FTP client and your remote FTP server. (Remember, this
can be done by executing both the NAMEFMT 1 and QUOTE SITE NAMEFMT 1
commands in your FTP session or in your FTP script.) Even if you want to use
NAMEFMT 0 on both your AS/400s, you may still want to issue the NAMEFMT
command for both machines just to ensure your transfer works properly.

Now You Know

By understanding how the NAMEFMT command affects your FTP sessions to your
AS/400, you are now armed with the knowledge you need to efficiently use FTP to
transfer files between AS/400s or between an AS/400 and the outside world. Knowing
what NAMEFMT does is the key to understanding how to manipulate an FTP session
involving an AS/400.

Você também pode gostar