putpds — Copies UNIX file(s) to PDS(E) member(s)
The putpds command copies UNIX file(s) to PDS(E) member(s).
dataset.name is either an MVS PDS or PDS/E dataset, preceded by '//'.
The name is assumed to be a fully qualified DSN, unless the -r option is used.
ISPF statistics can be created for members, depending on the -M member processing options given.
Supported record formats include: RECFM=F(B), V(B), and U.
RECFM=VBS is not supported, and statistics processing is not available with RECFM=U. Load modules, program objects, aliases, or other members with user TTRNs may not be copied.
One or more
file names may be given; shell file globbing may be used to
specify file names as wild cards. If
//dataset.name(member) is specified, the
is used as given and may be "-" for stdin. Otherwise, the given file names must
be either a valid member name or in the form: member.suffix.
In a shell you will need to quote
"//dataset.name(member)" since ( and ) are meta characters.
"binary", disables translation and implies: -l none -w flow -p 0x00 if -b is specified with -l (except -l none), then -w wrap is the default.
display help and exit.
source lines are separated by combination of linefeed and/or carriage return characters. The default is 'flexible' which allows for any of the other patterns above. These characters are taken from the source codepage.
source lines are preceeded with a four byte IBM-style RDW, consisting of a two byte network order (big endian) length followed by two bytes of zeros.
Source data is preceeded by a 128 byte MicroFocus standard header. Source lines are preceeded with a network order (big endian) length. If the maximum record length is < 4095 bytes, the length field is 2 bytes. If the maximum record length is >= 4095 bytes, the length field is 4 bytes. Each record must be padded with zeros to the nearest 4 byte boundary.
source lines are followed with a hex character sequence. The sequence must be between 1 and 8 bytes long.
source lines do not have separators; source lines are determined by the maximum output record length.
A comma-separated list of options to control logging and tracing.
Logging threshhold: eMergency, Alert, Critical, Error, Warning, Notice (default), Info, Debug, Trace, Fine.
Prefix log messages with a system timestamp
Include consumed cpu time in log messages
Messages are logged to
filenameon the server instead of stderr. If not fully qualified, the file is written to the user's home directory on the server.
Set the logging threshold for a specific component. Specify only at the request of product support personnel.
pad character used to pad fixed-length records. The default is the target codepage space character.
Codepage conversion technique string. Used to override the default Unicode Services value of
LMREC. For more information, see IBM's Unicode Services User's Guide and Reference (SA22-7649).
dataset-namewill be prefixed with the current z/OS userid.
The codepage name or numeric CCSID id of the input data. If not specified and invoked from a remote client with a line-separator other than 'none', 'rdw' or 'mfrdw', then the default client codepage is used, otherwise the default z/OS codepage is used.
The codepage name or numeric CCSID id of output dataset. If not specified, then the default z/OS process codepage is used. Translation is disabled if source-codepage equals target-code- page.
-TSTANDARD | translate_table_dsname
Specifies the translate table to use for text mode transfers. This option overrides the
-s -t -qoptions if also given. If
STANDARD, the translate table TCPIP.STANDARD.TCPXLBIN is used. If a dataset name is supplied, it is expected to be in the format produced by the TSO CONVXLAT command. Only single byte translations are supported. Specifically, the dataset DCB must be LRECL=256,RECFM=F and contain two translation table records. The first record is an ASCII-to-EBCDIC mapping; the second record is an EBCDIC-to-ASCII mapping. Additional comment records (starting with * in the first column) are allowed.
-M keyword=value[,keyword=value...]member processing options
A comma-separated list of keyword and value pairs for specifying member processing options.
if yes (default) then existing members may be replaced.
if yes, create or update member statistics for each member copied. Default is no - copied members will not have stats
used with the zigi product to provide stats for members. May not be specified with genstats=y
copy all named files (default)
with genstats, only copy files with mtime newer than member stats, also copying if either does not have stats
with statsfile, only copy only files with newer (or missing) statsfile stats
with statsfile), only copy only files with statsfile entries
with genstats, set member mtime to current time (default)
with statsfile that is missing member stats, set member mtime to current time (default)
with genstats, set member stats mtime to the file's mtime, or current time if mtime is not available for the file
with statsfile that is missing member stats, set member mtime to the file's mtime, or current time if not present for the file
display the current version and exit.
wrap (default) | error | flow | trunc. This options determines what to do if the input line is longer than the maximum data set record length.
This example first copies members of a PDS to UNIX files using getpds. The putpds is then used to copy these files to a new PDS.
$ getpds //kirk.admin.jcl . getpds(KIRK.ADMIN.JCL)[N]: 24 members/945 records/75600 bytes read; 38796 bytes written in 0.011 seconds (3444.247 KBytes/sec). $ putpds -x 'like(kirk.admin.jcl)' * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.042 seconds (37.598 KBytes/sec).
Here the getpds -M mtime=member is used to create statistics for each member copied using the current time and line counts. The -LI option is used to print information messages about each member copied.
$ putpds -M gen=y -LI * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorc -> ACSSTORC putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorg -> ACSSTORG ... putpds(KIRK.ADMIN.COPY.JCL)[I]: copied sysinfo -> SYSINFO putpds(KIRK.ADMIN.COPY.JCL)[I]: copied z13rest -> Z13REST putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.044 seconds (35.889 KBytes/sec).
In this example use the getpds -M statsfile= option to write a file containing the statistics for the original PDS. The putpds command is then used to copy members and these stats to the second PDS. Stats will be generated for any members that had no statistics, using the current time. Notice that the shell expanded "*" to include the
ispf-statsfile, but this was skipped because it is not a valid
member[.suffix]name. Finally, we use getpds to print the stats (no members are copied since a target directory is not specified).
$ getpds -M st=ispf-stats //kirk.admin.jcl . getpds(KIRK.ADMIN.JCL)[N]: 24 members/945 records/75600 bytes read; 38796 bytes written in 0.010 seconds (3788.672 KBytes/sec). $ putpds -LI -M st=ispf-stats * //kirk.admin.copy.jcl putpds(KIRK.ADMIN.COPY.JCL)[I]: skipping file with unrecognized name format: "ispf-stats" putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorc -> ACSSTORC putpds(KIRK.ADMIN.COPY.JCL)[I]: copied acsstorg -> ACSSTORG ... putpds(KIRK.ADMIN.COPY.JCL)[I]: copied sysinfo -> SYSINFO putpds(KIRK.ADMIN.COPY.JCL)[I]: copied z13rest -> Z13REST putpds(KIRK.ADMIN.COPY.JCL)[N]: 38796 bytes read; 24 members/945 records/75600 bytes written in 0.043 seconds (36.723 KBytes/sec). $ getpds -M st=- //kirk.admin.copy.jcl ACSSTORC 16/12/02 17/10/02 1 2 14:22:50 104 57 0 IBMUSER ACSSTORG 16/12/01 17/10/02 1 1 14:23:53 45 38 0 IBMUSER ... SYSINFO 20/10/26 20/10/26 1 0 12:44:16 155 155 0 KIRK Z13REST 17/08/18 17/08/18 1 1 15:39:30 42 40 0 KIRK getpds(KIRK.ADMIN.COPY.JCL)[N]: 0 members/0 records/0 bytes read; 0 bytes written in 0 milliseconds.