Rsync does not support this behavior out of the box. You might find another tool such as
rsnapshot such as Jaylen suggested to be a good move.
If you really do want to do exactly as you describe, here is what you can do.
- First, run your rsync WITHOUT a delete. This will just copy everything over from your live data to your backup.
- Next run the rsync again with the delete, but this time in TEST mode (-n). This will generate a list of files to BE deleted based on what has been deleted in your live data but not yet in your backups. Save this output to a file with the date.
- Now keep those list of things to delete, but only process them a week later. Keep a queue and only process the deletion suggestions that have been in the queue for at least a week.
Alternatively, use the output of the
rsync --delete -n but instead of queuing, use some other check such as the last modified date in the backup to make sure you only delete things that have not otherwise been edited inside of a week. This is not quite the behavior you asked for but would be easier to program and might suffice.