Duptape / recordio Duptape(1) is an easy-to-use script for duplicating tapes, preserving record boundaries and filemarks. It will copy locally or to/from a tape drive on a remote host. Duptape uses recordio(1), a program that will either: (a) read files from a tape and write them as a single stream to stdout, adding enough information that the original tape with its original record sizes and filemarks can be reconstructed; or: (b) read a stream as described in (a), reconstruct the original data, and write to tape. The output from recordio's tape-reading mode can be put on a disk file, if desired, and later fed to recordio's tape-writing mode. By default a tape is copied through double-EOF, but this can be changed with the -n option. duptape is a script that wraps the calls to recordio in an easy-to-use rcp-style interface. --------------------- After writing duptape, I learned about the existence of "copytape", by David Hayes. Copytape and recordio have much the same functionality; had I known about copytape, I wouldn't have written recordio. The "duptape" script, with its nice rcp-like interface, doesn't have a counterpart in copytape, but "copytape" fans would find it easy to adapt duptape to call copytape instead of recordio. --------------------- Duptape use: % duptape [options] [[username@]host1:]fromtape [[username@]host2:]totape Examples: # Local tape to local tape: # % duptape /dev/nrst0 /dev/nrst1 # Local tape to remote tape, using a 64 KB copy buffer: # % duptape -b 64k /dev/nrst0 joe@otherhost:/dev/rmt/2mn Main duptape options: -b bs copy buffer size. Default 32 KB. -n nf number of filemarks to copy thru. Default through double EOF. Note that end of data on an Exabyte tape acts like double EOF. Restrictions: ssh(1) is used to execute commands on a remote host. Thus you must have rlogin permission on fromhost and tohost. You can override the use of ssh with the environment variable DUPTAPE_RSH, which specifies a path to an rsh-like command. The program "recordio" must exist on the host(s). --------------------- # Typical recordio use: # % recordio -r < fromtape | ... | recordio -w > totape # Local tape to disk file, then disk file to tape: # % recordio -r < tapedev > diskfile % recordio -w < diskfile > tapedev