[PATCH][RFC] space saving incrementals
jw at pegasys.ws
Sat Mar 9 10:05:14 EST 2002
On Fri, Mar 08, 2002 at 03:45:04PM -0600, Dave Dykstra wrote:
> I like link-dest, and the "-" for exclude-from/include-from was already
> something I was planning to add one of these days along with the
> --files-from option I still plan to write, but --compare-perms confuses
> me. Can you give examples of when you need it?
> - Dave Dykstra
sequence of commands:
admin# rsync /project /vault/monday
admin# chmod 666 /project/somefile
admin# chown bin /project/someotherfile
admin# rsync --link-dest=/vault/monday /project /vault/tuesday
Now /vault/monday/somefile has perms of 666 and
someotherfile is owned by bin. I cannot restore the perms
from /vault/monday. That info is lost. /vault/monday no
longer is an accurate representative of what existed when it
With --compare-perms somefile and someotherfile will not be
linked between monday and tuesday even though the contents
compare-perms only makes sense when you are using link-dest.
> On Thu, Mar 07, 2002 at 01:25:50PM -0800, jw schultz wrote:
> > Please CC me directly as i'm not on the list.
> > I have attached a patch against latest CVS (cvs diff -u)
> > that adds the following functionality. I can break it up if
> > you would prefer it in pieces. Comments welcome.
> > o add compare-perms option
> > This creates a new inode for a file even if only
> > the perms have changed. This way if a file
> > outside of destdir is hardlinked to a dentry
> > inside destdir the permissions (uid, gid,
> > mode) will be untouched preserving history
> > etc.
> > o link-dest option
> > After setting compare_dest this causes
> > unchanged files in destdir to be hardlinked
> > to link-dest.
> > o modified make_exclude_list to support stdin
> > if --exclude-from has argument of "-"
> > stdin will be read.
> > This lets us pipe a include/exclude list
> > into rsync so that we can generate it on the
> > fly.
> > The upshot of these is to allow rsync to make incremental
> > backups without modifying earlier versions but keep every
> > version as a complete tree. It then becomes possible to
> > make tapes or restore from any image.
> > Although --compare-perms saves on block count this patch
> > only applies it to regular files so symlinks and device
> > nodes will still chew up inodes. :(
> > for the sake of an example here is the command line i'm using:
> > /site/bin/rsync -v --stats -a -H -e ssh --compare-perms
> > --delete --delete-excluded --numeric-ids --exclude-from -
> > --link-dest /e/backup1/home/update1/tree leto:/efs/home/
> > /e/backup1/home/update2/tree > /e/backup1/home/update2/log
> > i have tried to keep my changes small and consistent with the
> > existing coding style. Feel free to dink with it. I only
> > care about the performance.
J.W. Schultz Pegasystems Technologies
email address: jw at pegasys.ws
Remember Cernan and Schmitt
More information about the rsync