On 05.02.2014 13:00, Daniel Mare wrote:
> As a safety feature, I would like to see a feature that would prevent rsync 
> from syncing when the sync, if it were to go ahead, would result in more than 
> a certain number of files being deleted from the destination.
> 
> A similar feature, --max-delete, does exist, but does not prevent rsync from 
> doing a partial run when --max-delete entries would be exceeded - it simply 
> deletes up to that amount of files.
> 
> In scheduled scripts, this would result in damage being done a bit at a time 
> at each run, so not really a safety feature and additionally, even if problem 
> caught after only one run, it still means the clone is in an unknown state 
> (at least without processing thousands of log delete entries).
> 
> A workaround I considered was doing a dry-run first, then only proceeding 
> with the rsync when the dry-run doesn't exit with exit codes 25, but this is 
> extremely inefficient - completely impractical for e.g. syncing large data 
> stores overnight (4Tb in my case).

What you describe can only be done in a non-incremental way.
So it's a 2-pass thing anyway and the question is:
Does the metadata of all files fit into RAM?

Because when doing either a separate dry-run or runing in 
non-incremental mode, the difference in run-time depends on metadata 
fiting into RAM and how many files ultimatly have to be transfered. If 
there is a non-negliable amount of files to be transfered and the 
metadata does NOT fit into RAM there likely isn't much of a difference.

If all metadata fits into RAM, a seperate dry-run doesn't hurt much.

And if all else fails, you may try to shard the transfer into pieces 
that fit into RAM and then doing a dry-run & transfer for each piece.




-- 

Matthias
-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to