I think you need something like:
remsh tape_host "dd if=/dev/rmt/1m bs=5k" | dd bs=5k | cpio -icduBv
To see if that will work, first try a listing:
remsh tape_host "dd if=/dev/rmt/1m bs=5k" | dd bs=5k | cpio -icBtv
If needed, you can read only part of the tape by using "count=..."
(for example 1000, 5MByte) on the first (left-hand dd(1). If the first
part of the listing is OK, then the rest will probably be OK as well.
The dd(1)'s are needed, because remsh(1) does not guarantee that the
'chunks' written_to/read_from the 'remote pipe' will be all the same
size. The back-to-back dd(1)'s solve this problem.
By the way, if you still need to write the tape, then you can use
fbackup(1M) instead of cpio (1), and use "-f tape_host:/dev/rmt/1m" for
frecover(1M). That way, you do not need the remsh(1)+dd(1) stuff.
> Can someone please tell me what to type to do the following: I need to
> restore a cpio archive from the tape device on machine A to a filesystem on
> machine B. I want to execute the command from machine B. The cpio command
> I would execute if doing this locally is
> cpio -icduBv < /dev/rmt/1m
> but instead I need to restore from a remote tape device.