rsync and moving files [Re: backup w/ snapshots]

Svein Halvor Halvorsen svein-freebsd-questions at theloosingend.net
Wed Aug 31 07:14:40 GMT 2005


* Garance A Drosihn [2005-08-30 12:50 -0400]
>  Fwiw, I understand the problem you're trying to describe.  And the
>  basic issue is that rsync keeps no information between separate
>  runs of it.  It has no way of knowing that a given file on the
>  source volume used to be at a different location.  It does not even
>  know that the destination volume was sync'ed by a previous run of
>  rsync, so it does not even know that the file at the old location
>  on the destination is the same as the file at the old location on
>  the source.  It knows nothing more than the information it has at
>  the moment of any given run of rsync.
>  
>  You could kinda fudge that information for rsync by creating a lot
>  of hard links, but that is probably going to create more of a mess
>  than it will solve.
>  
>  So, you're left with doing something else outside of rsync.  The
>  script you are suggesting would probably be fairly easy to write
>  in something like ruby, perl, or python.  Use a key made up of the
>  inode number + lastchange date, or maybe inode number + file size.
>  Then save away the key-to-filename(s) mapping for every file.  On
>  the next run of rsync, see which files have moved on the source
>  directory.  If the destination volume has a file at the old location
>  which matches the file-size or lastchange date (depending on which
>  key you used...), then move it to the new location on the destination
>  volume.


Thanks! I think I will try to implement this, then!


More information about the freebsd-questions mailing list