I am using rsync and crontab to schedule a nightly backup.

However, want to do a full-backup and not incremental.

I am using the following rsync in my script file.

rsync -razv [email protected]:repos /home/backup_sys_user/repos_backup

And I want to create the structure below:


Is there anyway rsync can do this. I know if can create the directory using the --backup-dir=DIR but this is only for incremental. I want to do a full backup.

Many thanks for any advice,

  • The output directory for rsync always contains a full backup. It applyies the incremental changes since the last backup to existing backups. There are backup options which will create historical backups.
    – BillThor
    Oct 10, 2010 at 21:24

2 Answers 2

DATE=`date +%m.%d.%Y`
rsync -razv [email protected]:repos /home/backup_sys_user/repos_backup/$DATE

However, you might want to look at using --link-dest which will create backups with hardlinks, then, deleting older backups will still leave you with a full copy, but, you'll only take up the disk space for the changed files.

  • 1
    If this is only one command, you could just enter the date inline also rsync -razv [email protected]:repos /home/backup_sys_user/repos_backup/$(/bin/date +%m.%d.%Y)
    – Alex
    Oct 10, 2010 at 17:21

karmawhore has it generally right, but instead of manually using "--link-dest", you may want to check out rsnapshot:


Also, for large numbers of files I'd recommend using a version of rsync in the 3.x range because of this key improvement:

- A new incremental-recursion algorithm is now used when rsync is talking
  to another 3.x version.  This starts the transfer going more quickly
  (before all the files have been found), and requires much less memory.
  See the --recursive option in the manpage for some restrictions.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .