Hi all, Here's my story. I have 3 hosts, 1 remote and 2 local. We'll say for the sake of clarity that h1 is remote and h2 is the local rsync pull host and h3 is also a local host on the net. Using rsync, I want to pull a data set first from h1 to both h2 and h3. The first pull copies all the data from h1 to h2 and h3. OK, that gives me a baseline of the data on both h2 and h3. Now h3 is taken off the network and moved to a different location and the only way to update the data set on h3 is to copy data from a DVD to h3's hard disk. When I run rsync again the next week on h2, I want to write any changes that have occurred to the data set to a sperate directory on h2. Those changes must then be burned to a DVD and then sneakernetted to h3 for an update to the h3 data set there. Does anyone have a perl or other tool that can do this. I have the rsync script running and have pulled the baseline dataset from h1 to both h2 and h3. Now I need to get changes to h3 somehow. -- Dale Bohl dbohl@sgi.com SGI IT/MWOPS (715)-726-8406
On Fri, Feb 25, 2005 at 04:02:24PM -0600, Dale Bohl wrote:> When I run rsync again the next week on h2, I want to write any changes > that have occurred to the data set to a sperate directory on h2. > Those changes must then be burned to a DVD and then sneakernetted to h3 > for an update to the h3 data set there.Sounds like --write-batch will do what you want. Assuming you are using rsync 2.6.3 (I would not recommend earlier rsync's batch support). So run this on h2: cd /tmp rsync -av --write-batch=foo h1:/src/ /dest/ Or _alternately_, this on h1: cd /tmp rsync -av --write-batch=foo /src/ h2:/dest/ Then, burn /tmp/foo and /tmp/foo.sh onto DVD and take it to h3 and run this: cd /mnt/dvdrom ./foo.sh Or, if you need a different dest, this: cd /mnt/dvdrom ./foo.sh /different/dest/ That's the simple version. You aren't required to use the foo.sh file if you want to run the appropriate --read-batch=foo command yourself on h3. ..wayne..