How to delete files older than X on backup during sync?

Matt McCutchen matt at mattmccutchen.net
Sun Nov 9 15:34:32 GMT 2008


On Sun, 2008-11-09 at 03:18 -0500, Matthew Monaco wrote:
> Thomas von Eyben wrote:
> > I wish to use rsync to create a backup BUT only keep the files for a
> > limited period of time, EG two weeks.
> > I have not yet been able to figure out how to do this inside rsync
> > (while the backup is being performed) and my understanding of the
> > "--delete" flag is not for this wish.
> > 
> > My plan is - unless I find out that it indeed is possible with rsync -
> > to make a cronjob removing files older than X in the folder containing
> > the backups…
> 
> You can do something like
> 
> "rsync OPTIONS --rsync-path="find /root-dir/ -mtime +14 -delete ; rsync"
> SRC DEST"

If you count the two-week period from the mtime of the file, then
backups of really old files will be deleted as soon as they are saved.
I think it would make more sense to count from the time the backup file
is saved.  To do that, use a separate --backup-dir each day (e.g.,
--backup-dir=../backups/$(date +%Y-%m-%d) ) and simply delete each
backup dir as a whole when it becomes two weeks old.

The only disadvantage is that with multiple backup dirs, it becomes less
trivial to find backups of a particular path, but it would be easy to
write a script to help with this.

Matt



More information about the rsync mailing list