HPUX ftio[1]

ftio(1) ftio(1)
NAME
ftio - faster tape I/O
SYNOPSIS
ftio -o | -O [achpvxAEHLM] [-B blksize] [-D type] [-K comment] [-L
filelist] [-N datefile] [-S script] [-T tty] [-Z nobufs] tapedev
[pathnames] [-F ignorenames]
ftio -i | -I [cdfmptuvxAEMPR] [-B blksize] [-S script] [-T tty] [-Z
nobufs] tapedev [patterns]
ftio -g [v] tapedev [patterns]
DESCRIPTION
ftio is a tool designed specifically for copying files to 9-track
magnetic tape drives. It should perform faster than either cpio or
tar in comparable situations (see cpio(1) and tar(1)). ftio uses
multiple processes (to read/write the file system and to write/read
the tape device), with large amounts of memory sharing between
processes as well as a large block size for reading and writing to the
tape.
ftio is compatible with cpio in that output from cpio is always
readable by ftio, and output from ftio is readable by cpio, except as
explained in the cpio Compatibility section below.
ftio must be invoked with exactly one of the options -o, -O, -i, -I,
or -g. The option can be followed by modifiers which must appear
immediately after the option with no spaces between the option and the
modifier, as in ftio -idxE (see Modifiers section below).
tapedev specifies the name of an output file. A device on a remote
machine can be specified in the form
machine:device
ftio creates a server, /etc/rmt, on the remote machine to access the
tape device.
Options
ftio recognizes the following options:
-o Copy out files onto tapedev together with path
name and status information. If pathnames are
specified, ftio recursively descends pathnames
looking for files, and copies those files onto
tapedev. If pathnames are not specified, ftio
reads the standard input to obtain a list of path
names to copy. In addition to copying the files
onto the tape set, ftio generates, for each tape
in the tape set, a tape header containing the
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
current tape number, machine node name and type,
operating system name, release and version numbers
(all from the uname() system call - see uname(2)),
username of the backup initiator, time and date of
the backup, number of consecutive times the
current media has been used, a comment field, and
other items used internally by ftio. The tape
header is separated from the main body of the
archive by an end of file mark. The tape header
can be read by invoking cat with the device file
name as the first argument (see cat(1)). Note
that device files written with the -o option (such
as /dev/tty03) are not transportable to other HP-
UX implementations.
-O Copy out files in the same way as ftio -ocva when
no modifiers are used with the -O. However, if
the file .ftiorc exists in the user's home
directory, ftio opens this file and scans for
lines preceded by O=. Options defined on matching
lines are passed to ftio as if they had been
passed in the original command. See EXAMPLES
section.
-i Extract, or copy in, files from tapedev, which is
assumed to be the product of a previous ftio -o
operation. Only files with names that match
patterns, according to the rules of Pattern
Matching Notation (see regexp(5)), are selected.
In addition, a leading ! within a pattern
indicates that only those names should be selected
that do not match the remainder of the pattern.
Multiple patterns can be specified. If no
patterns are specified, the default for patterns
is * (that is, select all files). The extracted
files are conditionally created and copied into
the current directory tree, based upon the options
described below. The permissions of the files are
those of the previous -o operation.
-I Extract, or copy in, files in the same way as for
ftio -icdmv when no modifiers are used with the -
I. However, if the file .ftiorc exists in the
user's home directory, ftio opens this file, and
scans for lines preceded by I=. Options defined
on matching lines are passed to ftio as if they
had been passed in the original command. See
EXAMPLES section.
-g Read the file list on tapedev. If patterns is
specified, only file names that match are printed.
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
Note that file names are always preceded by the
volume that ftio expected the file to be on when
the file list was created; thus only the last
volume is valid in this respect.
-B blksize Specify the size (in bytes) of blocks written to
tape. This number can end with k, which specifies
multiplication by 1024. The use of larger blocks
generally improves performance and tape usage.
The maximum allowable block size is limited by the
tape drive used. A default of 16384 bytes is set
because this is the maximum block size on most
Hewlett-Packard tape drives.
-D type Recursively descend a directory only if the file
system to which it belongs is of type type, where
type is either hfs or nfs.
-F ignorenames Arguments following -F specify patterns that
should not be copied to the tape. The same rules
apply for ignorenames as do for patterns, see the
previous description for ftio -i.
-K comment Specify a comment to be placed in the ftio tape
header.
-L filelist If pathnames is specified, perform the file search
and generate a list of files to back up prior to
actually commencing the backup. This list is then
appended to the tape header of each tape in the
backup as a list of files that ftio attempted to
fit onto this tape. The last tape in the backup
contains a catalog of where the files are in the
archive set. If pathnames is not specified, the
file list is taken from standard input before the
backup begins. filelist specifies the output
file. In addition to generating file lists, the
-L option implements tape checkpointing, allowing
the backup to restart from a write failure on bad
media.
-M Do not generate or expect tape headers, and change
the default block size to 5120 bytes. This
provides full compatibility with cpio (see the
cpio Compatibility section below).
-N datefile Only files that are newer than the file specified
in datefile are copied to tape.
-R Automatically resynchronize when ftio goes out of
phase. This is useful when restoring from a
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
multi-tape backup on tapes other than the first.
Default behavior is that ftio asks the user if
resyncing is required.
-S script Specify a command to be invoked every time a tape
is completed in a multi-tape backup. The command
is invoked by the Bourne shell (see sh-bourne(1)
with the following arguments: script tape_no
user_name. script is the string argument script
specified with the -S option. tape_no is the
number of the tape required, and user_name is the
user who invoked ftio. Typically, the string
script specifies a shell script which is used to
notify the user that a tape change is required.
-T tty Specify alternate to /dev/tty. Normally /dev/tty
is opened by ftio when terminal interaction is
required.
-Z nobufs Specify the number of blksize chunks of memory to
use as buffer space between the two processes,
where blksize is the size of blocks written to the
tape. The use of more chunks is usually better,
but a point is reached where no improvement is
gained, and in fact performance may deteriorate as
buffer space is swapped out of main memory. A
default value of 16 is set for nobufs, but the use
of 32 or 64 may improve performance if your system
is not heavily loaded. Best results are obtained
when backups are performed with the system in
single-user mode (see shutdown(1M)).
Modifiers
The following modifiers can be used with certain options as indicated
in the SYNOPSIS:
a After files are copied out to tape, reset the access time
to appear as though the file was not accessed by ftio.
c Write header information in ASCII character form for
portability.
d When restoring files, create directories as needed.
f Copy in all files except those that match patterns.
h Archive the files to which symbolic links point as if
they were normal files or directories. Normally, ftio
archives the link itself.
Hewlett-Packard Company - 4 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
m Retain previous file modification time and ownership of
file. Restoring modification time does not apply to
directories that are being restored.
p At the end of the backup, print the number of blocks
transferred, the total time taken (excluding tape rewind
and reel-change time), and the effective transfer rate
calculated from these figures. These values are printed
at the end of each tape if p is given twice.
t Print only a table of contents of the input. No files
are created, read, or copied.
u Copy unconditionally (normally, an older file does not
replace a newer file with the same name).
v Be verbose. Print a list of file names as well as tape
headers. When used with the t modifier, the table of
contents looks the same as the output of the ls -l (ell)
command (see ls(1)).
x Save or restore device special files. ftio uses mknod(2)
to recreate these files during a restore operation.
Thus, this modifier is restricted to users with
appropriate privileges. This is intended for intrasystem
(backup) use. Restoring device files onto a different
system can be very dangerous.
A If copying from tape (-i or -I option), print all file
names found on the archive, noting which files have been
restored. This is useful when the user restores selected
files, but wants to know which (if any) files are on the
tape.
If copying to tape (-o or -O option), suppress warning
messages regarding optional access control list entries.
ftio(1) does not back up optional access control list
entries in a file's access control list (see acl(5)).
Normally, a warning message is printed for each file that
has optional access control list entries.
E When archiving, store all files having absolute path
names (pathname starts with /) with a path name that is
relative to the root directory (in other words, remove
the leading / from all files whose name starts with /).
On restoration, any files in the archive that had an
absolute path name before archiving (the leading / was
removed from the path name) are restored relative to the
current directory.
Hewlett-Packard Company - 5 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
L Same as the -L option, except that the file list is left
in the current directory as the file ftio.list, instead
of the file named in filelist.
H Search hidden subdirectories (context-dependent files
also called CDFs). Normally, only the CDF element
matching the current context is archived, without
expanding the path name to show the actual element. For
more information on CDFs see cdf(4).
P On restoration, use prealloc() to pre-allocate disk space
for the file (see prealloc(2)). This vastly improves the
localization of file fragments.
When end-of-tape is reached, ftio invokes script if the -S option
was specified, rewinds the current tape, then asks the user to
mount the next tape.
To pass one or more metacharacters to ftio without having the
shell expand them, protect them either by preceding each of them
with a backslash (as in /usr\*), or enclosing them in protective
quotes (as in '/usr*').
cpio Compatibility
ftio uses the same archive format as cpio. However, by default ftio
creates tape headers and uses a tape block size of 16 Kbytes. cpio by
default uses 512-byte blocks. When used with the -B option, cpio uses
5120 byte blocks. To achieve full compatibility with cpio in either
input or output mode, the user should specify the M modifier. ftio
-oM creates a single- or multi-tape archive that has no tape headers,
and, by default, the same block size as cpio -[o|i]B. An archive
created by a cpio -oB command can be restored using ftio -iM. If the
M modifier of ftio is combined with a -B 512 block-size specification,
full compatibility with cpio -[o|i] (no -B) is achieved.
EXTERNAL INFLUENCES
Environment Variables
LC_COLLATE determines the collating sequence used in evaluating
pattern matching notation for file name generation.
LC_CTYPE determines the characters matched by character class
expressions in pattern matching notation.
LC_TIME determines the format and contents of date and time strings.
LANG determines the language in which messages are displayed.
If LC_COLLATE, LC_CTYPE, or LC_TIME is not specified in the
environment or is set to the empty string, the value of LANG is used
as a default for each unspecified or empty variable. If LANG is not
specified or is set to the empty string, a default of "C" (see
Hewlett-Packard Company - 6 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
lang(5))isusedinsteadof LANG. If any internationalization variable
contains an invalid setting, ftio behaves as if all
internationalization variables are set to "C". See environ(5).
International Code Set Support
Single-byte character code sets are supported.
EXAMPLES
Copy the entire contents of the file system (including special files)
onto tape drive /dev/rmt/0h:
ftio -ox /dev/rmt/0h /
Restore all the files on /dev/rmt/0h, relative to the current
directory:
ftio -idxE /dev/rmt/0h
List the contents of a backup set created using ftio -o. Note that
use of the v modifier gives a more detailed listing, and displays the
contents of tape headers.
ftio -itv /dev/rmt/0h
Show how to use the .ftiorc file:
Assume a .ftiorc file exists in the user's home directory and
contains the following:
# Example .ftiorc file.
I= cdmuvEpp -B 16k -S /usr/local/bin/ftio.change
O= cavEpp -Z 8 -B 16k -S /usr/local/bin/ftio.change
Invoked ftio with the following command line to back up the
user's home directory and the system binary directory:
ftio -O /dev/rmt/0h /user/my_home /bin
Specifying the -O option causes ftio to check the .ftiorc file
for additional options. In this case, character headers are
generated, access times are reset, a listing of the files copied
are printed to standard output, all file names are copied to
/dev/rmt/0h with path names relative to /, performance data is
printed when the backup is complete (and at every tape change),
and, if the backup goes beyond one media the script,
/usr/local/bin/ftio.change is invoked by ftio after each media is
completed.
WARNINGS
ftio uses System V shared memory and semaphores for its operation.
The resources committed to these functions are not automatically freed
Hewlett-Packard Company - 7 - HP-UX Release 9.0: August 1992
ftio(1) ftio(1)
by the system when the process terminates. ftio does this only when
it terminates normally, or when it terminates after receiving one the
following signals: SIGHUP, SIGINT, SIGTERM. Any other signal is
handled in the default manner described by signal(2). Note that the
behavior for SIGKILL is to terminate the process without delay. Thus,
if ftio receives a SIGKILL signal (as might be produced by the
indiscriminate use of kill -9 (see kill(1)), system resources used for
shared memory and semaphores are not returned to the system. If it
becomes necessary to terminate an invocation of ftio, use kill -15.
Current system usage of shared memory and semaphores can be checked
using the ipcs command (see ipcs(1)). Committed resources can be
removed using ipcrm (see ipcrm(1)).
AUTHOR
ftio was developed by HP.
SEE ALSO
cpio(1), find(1), ipcs(1), ipcrm(1), kill(1), ls(1), rmt(1M),
mknod(2), prealloc(2), signal(2), uname(2), cdf(4), acl(5),
environ(5), lang(5), regexp(5), mt(7).
Hewlett-Packard Company - 8 - HP-UX Release 9.0: August 1992