Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!batcomputer!cornell!uw-beaver!milton!ogicse!intelhf!ichips!iwarp.intel.com!gargoyle!chinet!les From: les@chinet.chi.il.us (Leslie Mikesell) Newsgroups: comp.unix.questions Subject: Re: Resolved tar (and dd and afio) Message-ID: <1991Apr05.230208.20063@chinet.chi.il.us> Date: 5 Apr 91 23:02:08 GMT Article-I.D.: chinet.1991Apr05.230208.20063 References: <5932@tahoe.unr.edu> <11734@dog.ee.lbl.gov> Organization: Chinet - Chicago Public Access UNIX Lines: 26 In article <11734@dog.ee.lbl.gov> torek@elf.ee.lbl.gov (Chris Torek) writes: > E. dd works in mysterious ways. Thanks for explaining this. I once fooled around trying to get a shell script running multiple invocations of dd to split the input from a pipe into different files and eventually gave up on it because it wasn't paying attention to the blocksize I gave with bs=. I didn't realize that specifying ibs and obs would have made it work. Also, a solution for the original problem is to use "afio" if a cpio style tape is acceptable. It will construct the appropriate rsh command internally if you give the device name in the form host:device, running another copy of itself on the remote machine and passing the blocking details to it. It also supports a crude form of double buffering where a child is forked to write each buffer while the parent fills the next. Running in this mode with large buffers at both ends can overlap the network and tape i/o. Actually it should be possible to use afio on the device end with tar on the remote machine. You would just have to construct the rsh command using the (undocumented) -I or -O options to afio that request data stream i/o and the blocking you want. Les Mikesell les@chinet.chi.il.us