rsync: how to create an incremental backup

backup with rsync

Call it whatever you want, backup, backup, backup, but do it. Backups are vital to avoid data loss and are often forgotten. This costs a lot of trouble and money to many companies, but also to home users who see their documents or work disappear overnight. Either due to a failure in the hard drive, due to a software problem that leaves the data corrupted, due to ransomware, etc. And here you can learn how to do it with rsync.

Remember that to avoid data loss, if you carry a good policy backup you can preserve your data or most of them. Remember to make frequent copies (appropriate to the amount of new data that you generate and the importance of it) and do it on secure media. That is, do not store them on perishable media such as optical discs that can be scratched ...

There are several types of backup, and the one that interests me here is the incremental copy that will be done without installing anything, only with the rsync tool that you will already find in your distro.

Types of backups

If you still don't know what is an incremental backup, and the differences with other types, basically stick with this:

  • Logistics: all files that may be in a drive or directory are copied.
  • Incremental- Will only copy files that have been modified after a previous full or differential backup. To do this, it compares the modification dates of the source files and those of the previous copy and if there are differences, the software will make the decision to copy only those that have been modified. The good thing about this copy is that it is not as heavy as the full one and allows you to update only what you are interested in.
  • Differential: it is something in between full and incremental. That is, it will copy both files that have been created new and those that have been modified.

How to create the copies with rsync

Although the title only mentions the incrementals, I will also include the others, since I do not like any work and it will surely be good for you to remember the commands for that.

  • In the full backup:
rsync -avh /ruta/origen /ruta/destino
  • In the incremental backup:
rsync -avhb --delete --backup-dir=/ruta/destino/copia_$(date +%d%m%Y%H%M) /ruta/origen/ /ruta/destino/

  • For the differential, if you even want to do it from a script to schedule it daily, weekly or monthly, you can use this code:

DAY=$(date +%A)

if [ -e /ruta/copia/incr/$DAY ] ; then
  rm -fr /ruta/copia/incr/$DAY

rsync -a --delete --quiet --inplace --backup --backup-dir=/ruta/copia/incr/$DAY /ruta/origen/ /ruta/destino/

The content of the article adheres to our principles of editorial ethics. To report an error click here.

2 comments, leave yours

Leave a Comment

Your email address will not be published. Required fields are marked with *



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Oscar said

    The problem with incremental copies with rsync is the deleted files. With the initial copy and applying the incrementals, you do not get a copy that is a reflection of the original.

    1.    Jorge Roman said

      True, but it may be convenient if that deleted file was deleted by mistake. The copy should not carry that erasure error. Greetings