GNU tar currently provide following options to handle incremental backup
--listed-incremental=snapshot file (-g snapshot file)
--incremental (-G)
Examples
root# tar --create --file=archive1.tar listed-incremental=/var/log/usr.snar /usr
Above given command will create archive1.tar as incremental backup of /usr filesystem, additional metadata will stored in file /var/log/usr.snar file . If /var/log/usr.snar file not exist it will get created, the created archive will then level 0 backup.
Now suppose for the same above given example, if /var/log/usr.snar exist. Then above given will check which files get modified and only those files stored in archive, so that will be level 1 backup.
So the best option is take level 0 (full) backup first as following
root# tar --create --file archive1.tar --listed-incremental=/var/log/usr.snar
copy that file
root#cp /var/log/usr.snar /var/log/usr.snar-1
Then take incremental backup as follows
root#tar --create --file archive2.tar --listed-incremental=/var/log/usr.snar
To extract content from backup we also have to follow same steps which followed at the time of backup. In our example the procedure will be as follows
root# tar --extract --listed-incremental=/dev/null --file=archive1.tar
Followed by
root#tar --extract --listed-incremental=/dev/null --file=archive2.tar
--listed-incremental=snapshot file (-g snapshot file)
--incremental (-G)
Examples
root# tar --create --file=archive1.tar listed-incremental=/var/log/usr.snar /usr
Above given command will create archive1.tar as incremental backup of /usr filesystem, additional metadata will stored in file /var/log/usr.snar file . If /var/log/usr.snar file not exist it will get created, the created archive will then level 0 backup.
Now suppose for the same above given example, if /var/log/usr.snar exist. Then above given will check which files get modified and only those files stored in archive, so that will be level 1 backup.
So the best option is take level 0 (full) backup first as following
root# tar --create --file archive1.tar --listed-incremental=/var/log/usr.snar
copy that file
root#cp /var/log/usr.snar /var/log/usr.snar-1
Then take incremental backup as follows
root#tar --create --file archive2.tar --listed-incremental=/var/log/usr.snar
To extract content from backup we also have to follow same steps which followed at the time of backup. In our example the procedure will be as follows
root# tar --extract --listed-incremental=/dev/null --file=archive1.tar
Followed by
root#tar --extract --listed-incremental=/dev/null --file=archive2.tar