<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Colas.Nahaboo.net - rsync-incr</title>
    <subtitle>Colas Nahaboo personal site, with discussions about programming code, web and computing topics, surfing and SUPing, and various musings.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://colas.nahaboo.net/tags/rsync-incr/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://colas.nahaboo.net"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-02-11T00:00:00+00:00</updated>
    <id>https://colas.nahaboo.net/tags/rsync-incr/atom.xml</id>
    <entry xml:lang="en">
        <title>Rsync-Incr</title>
        <published>2025-02-11T00:00:00+00:00</published>
        <updated>2025-02-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://colas.nahaboo.net/code/rsync-incr/"/>
        <id>https://colas.nahaboo.net/code/rsync-incr/</id>
        
        <content type="html" xml:base="https://colas.nahaboo.net/code/rsync-incr/">&lt;h2 id=&quot;what-is-rsync-incr&quot;&gt;What is rsync-incr&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-is-rsync-incr&quot; aria-label=&quot;Anchor link for: what-is-rsync-incr&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;rsync-incr&lt;&#x2F;strong&gt; is a linux wrapper shell (bash) script around
&lt;a href=&#x27;https:&#x2F;&#x2F;github.com&#x2F;RsyncProject&#x2F;rsync&#x27; title=&#x27;rsync website&#x27;&gt;rsync&lt;&#x2F;a&gt; to perform automated, unattended, incremental, disk
to disk backups, automatically removing old backups to make room for new
ones. It produces standard mirror copies browsable and restorable
without specific tools.I have been using it in production daily at work
and at home since 2004.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;goals&quot;&gt;Goals&lt;a class=&quot;zola-anchor&quot; href=&quot;#goals&quot; aria-label=&quot;Anchor link for: goals&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;I wanted to have a backup system with the following properties:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;standard&lt;&#x2F;strong&gt; based on standard tools (rsync), and restorable with only
standard tools.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;simple&lt;&#x2F;strong&gt; as possible.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;automatable&lt;&#x2F;strong&gt; to be run daily (or more) by crontab, managing error
conditions reliably so we can mail on errors, and making automatically
room for new backups.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;user-manual&quot;&gt;User Manual&lt;a class=&quot;zola-anchor&quot; href=&quot;#user-manual&quot; aria-label=&quot;Anchor link for: user-manual&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;code&gt;rsync-incr [options] N sourcedir destdir&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;rsync-incr will create &lt;code&gt;destdir&lt;&#x2F;code&gt; as a perfect mirror, and save in
&lt;code&gt;destdir.past&lt;&#x2F;code&gt; a directory per run with copies of changed files old
versions. These &lt;code&gt;N&lt;&#x2F;code&gt; (at most) directories of old versions of changed
files are named by their dates in the form
&lt;code&gt;destdir.past&#x2F;YYYY-MM-DD.HHhMN-SIZEm&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;e.g: &lt;code&gt;for rsync-incr 10 &#x2F;home &#x2F;backups&#x2F;home&lt;&#x2F;code&gt; &lt;br&gt;
&lt;code&gt;&#x2F;backups&#x2F;home.past&#x2F;2005-01-24.04h23-122m&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Date of last backup is in the contents of file &lt;code&gt;destdir.past&#x2F;LAST_DATE&lt;&#x2F;code&gt;.
No need to append a trailing &#x2F; to source and destination. &lt;br&gt;
&lt;code&gt;Dest&lt;&#x2F;code&gt; must be on the local machine (maybe NFS-mounted), &lt;code&gt;sourcedir&lt;&#x2F;code&gt; can
be on a remote machine via the ssh syntax &lt;code&gt;host:dir&lt;&#x2F;code&gt;.&lt;br&gt; &lt;code&gt;SIZE&lt;&#x2F;code&gt; in
name is the disk space taken that this backup, in megabytes, before an
optional compression via &lt;code&gt;--cbf&lt;&#x2F;code&gt;, to help you find the good value of &lt;code&gt;N&lt;&#x2F;code&gt;
m (e.g: the max of past SIZEs), as this size is hard to find in &lt;code&gt;--snap&lt;&#x2F;code&gt;
mode SIZE is rounded to upper bound: 0m means 0 bytes, 2m less than 2m&lt;&#x2F;p&gt;
&lt;p&gt;This a simple script, making backups usables by standard rsync (no need
for a dedicated restore script). It has 2 basic modes of operation:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;default&lt;&#x2F;strong&gt;: make a perfect copy, of all hard links, devices, sparse
files, and just stores in dirs the previous versions of only the
changed files. This makes it easy to find the different states a files
went through, but make it harder to get a perfect snapshot of what was
the full state N days before. E.g, if a directory contains files A and
B, and B is modified today, yesterday backup will contain only
yesterday version of B, and today will contain current versions of A
and B.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--snap&lt;&#x2F;strong&gt;: makes full snapshots of what the source was like at backup
times as described in &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;www.mikerubel.org&#x2F;computers&#x2F;rsync_snapshots&quot;&gt;Mike Rubel&#x27;s article&lt;&#x2F;a&gt; It is
easier to get to full snapshots of previous states, and should run
faster than the default. E.g, if a directory contains files A and B,
and B is modified today, both yesterday and today backups will contain
A and B, but A will be the same file (hard links to the same inode),
and the Bs will be two different fles.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If N has &quot;m&quot; appended (2m, 34m, ..) old versions are removed before
backup until we have at least N megabytes free on dest, and the max of
space taken by previous backups (+ 10%, see &lt;code&gt;--pbsm&lt;&#x2F;code&gt;). Otherwise, just
keep the last N backups.&lt;&#x2F;p&gt;
&lt;p&gt;Options are passed to rsync, but must be a single word parts (e.g: use
&lt;code&gt;--rsh=ssh&lt;&#x2F;code&gt;, not &lt;code&gt;-e ssh&lt;&#x2F;code&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;e.g:
&lt;code&gt;rsync-incr -z --bwlimit=12 --rsh=ssh server:&#x2F;home&#x2F;me &#x2F;backups&#x2F;me&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;(this will create an perfect backup in &lt;code&gt;&#x2F;backups&#x2F;me&lt;&#x2F;code&gt; and a series of
previous versions as dirs like
&lt;code&gt;&#x2F;backups&#x2F;me.past&#x2F;2004-10-26.04:40:20-234&lt;&#x2F;code&gt; ...) rsync-incr uses &lt;code&gt;rsync&lt;&#x2F;code&gt;
with options: &lt;code&gt;-HSax --delete --force&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Special non-rsync options:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;--nohl&lt;&#x2F;strong&gt; do not use the -H &#x2F; --hard-links option (do not preserve
hard links), faster if you do not need to preserve hard links.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--cbf&lt;&#x2F;strong&gt; compresses (gzip -r) all backuped files (will not compress
files with hard links)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--snap&lt;&#x2F;strong&gt; old backups are full snapshots of previous stats, as in
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;www.mikerubel.org&#x2F;computers&#x2F;rsync_snapshots&#x2F;#Incremental&quot;&gt;Mike Rubel&#x27;s article&lt;&#x2F;a&gt;
but this do not preserve hard links&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--grem&lt;&#x2F;strong&gt; global remove: will remove oldest backups globally on the
filesystem (otherwise space-making on a small backup could wipe out
all backups in order to desperately make room, not noticing that
removing a single old backup of a bigger backup could do the job).
&lt;br&gt; You should place a list (one per line) of all the absolute
paths of &lt;code&gt;LAST_DATE&lt;&#x2F;code&gt; files on the system in the env variable
&lt;code&gt;RSYNCINCR_LASTDATES&lt;&#x2F;code&gt;, for instance by a statement:
&lt;ul&gt;
&lt;li&gt;export RSYNCINCR_LASTDATES&lt;code&gt;`locate =LAST_DATE`&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;otherwise a global find will be used, which can be very &lt;strong&gt;slow&lt;&#x2F;strong&gt;. It
will only remove backups on same filesystem as destdir, so you can list
all LAST_DATE paths on all disks. For instance if all the backups are
organized as &lt;code&gt;&#x2F;backups&#x2F;host&#x2F;partition&lt;&#x2F;code&gt;, the following should be included
at the start of backup scripts to decrease startup time: &lt;br&gt;
&lt;code&gt;RSYNCINCR_LASTDATES=`ls -1 &#x2F;backups&#x2F;*&#x2F;*.past&#x2F;LAST_DATE`&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;--pbsm=P&lt;&#x2F;strong&gt; Previous Backups Space Margin: reserve space before
backup for at least the max size of previous backups + P% (P default
to 10). If P ends with &quot;m&quot; (like 7m) it is taken as P megabytes to add
rather as a percentage.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--inodes=N&lt;&#x2F;strong&gt; ensures we have at least N percent of inodes free, and
make room if not. Useful for backuping directories with huge number of
small files.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--clean&lt;&#x2F;strong&gt; Just make enough room for the backups, but do not actually
perform the backups&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;--cross-devs&lt;&#x2F;strong&gt; allows to backup directories spanning multiples
volumes, mounted on subdirectories. Otherwise rsync-incr uses the -x
option of rsync.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;To restore a backup, use standard rsync (trailing slashes are
IMPORTANT):&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;rsync -HSax --delete --force *backup* &#x2F; *original* &#x2F;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Rsync errors are propagated (the script exits with rsync exit status),
except for the error #24 which is trapped, as this error can happen on
backups of live systems (being modified while backuped)&lt;&#x2F;p&gt;
&lt;h2 id=&quot;download&quot;&gt;Download&lt;a class=&quot;zola-anchor&quot; href=&quot;#download&quot; aria-label=&quot;Anchor link for: download&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;From github: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;a class=&quot;zola-anchor&quot; href=&quot;#installation&quot; aria-label=&quot;Anchor link for: installation&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Just copy the &lt;code&gt;rsync-incr&lt;&#x2F;code&gt; shell script anywherein your PATH, e.g:
&lt;code&gt;&#x2F;usr&#x2F;local&#x2F;bin&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;implementation&quot;&gt;Implementation&lt;a class=&quot;zola-anchor&quot; href=&quot;#implementation&quot; aria-label=&quot;Anchor link for: implementation&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;A 120 lines of shell script (excluding the embedded doc)&lt;&#x2F;p&gt;
&lt;h3 id=&quot;license&quot;&gt;License&lt;a class=&quot;zola-anchor&quot; href=&quot;#license&quot; aria-label=&quot;Anchor link for: license&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Pure Open source: &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.gnu.org&#x2F;copyleft&#x2F;gpl.html&quot;&gt;GPL&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;more-details&quot;&gt;More details&lt;a class=&quot;zola-anchor&quot; href=&quot;#more-details&quot; aria-label=&quot;Anchor link for: more-details&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;See also what inspired me:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;RsyncProject&#x2F;rsync&quot;&gt;Rsync&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;http:&#x2F;&#x2F;www.mikerubel.org&#x2F;computers&#x2F;rsync_snapshots&quot;&gt;Mike rubel seminal article&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20170208161849&#x2F;https:&#x2F;&#x2F;www.perusion.com&#x2F;misc&#x2F;Snapback2&#x2F;snapback2.html&quot;&gt;snapback&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;hacks.oreilly.com&#x2F;pub&#x2F;h&#x2F;42&quot;&gt;O&#x27;Reilly hacks&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;new-versions-announcements&quot;&gt;New versions announcements&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-versions-announcements&quot; aria-label=&quot;Anchor link for: new-versions-announcements&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Since 2025, releases are annonced on the Github site, at:
&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&#x2F;releases&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&#x2F;releases&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This documentation pages are going to migrate to Github too.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;examples-of-use&quot;&gt;Examples of use&lt;a class=&quot;zola-anchor&quot; href=&quot;#examples-of-use&quot; aria-label=&quot;Anchor link for: examples-of-use&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;See a &lt;a href=&quot;&#x2F;code&#x2F;detailed-example-of-rsync-incr-operation&quot;&gt;detailed example of what rsync-incr does&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Also, here are (modified for privacy) real scripts I use daily:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&#x2F;blob&#x2F;main&#x2F;backup-script1.txt&quot;&gt;Example1&lt;&#x2F;a&gt; a script run
daily on the host backserv to archive incrementally various machine
partitions and mailing in case of errors at $email&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ColasNahaboo&#x2F;rsync-incr&#x2F;blob&#x2F;main&#x2F;backup-script2.txt&quot;&gt;Example2&lt;&#x2F;a&gt; this script is
auto-run on start of the backup server: it connects to the main server
(named &quot;m&quot;), backups, and halts the backup server It does it in 2
paralled processes impacting disks on different controllers for added
speed. Only m root partition is done incrementally&lt;&#x2F;li&gt;
&lt;li&gt;To connect to sites that use a non-standard port for ssh, let&#x27;s say
&lt;code&gt;26&lt;&#x2F;code&gt; the trick is to create a shell script, for instance named
&lt;code&gt;ssh-p26&lt;&#x2F;code&gt;, containing the line: &lt;code&gt;exec ssh -p 26 &quot;$@&quot;&lt;&#x2F;code&gt; and call
rsync-incr with the option &lt;code&gt;--rsh=ssh-p26&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;other-backup-systems&quot;&gt;Other backup systems&lt;a class=&quot;zola-anchor&quot; href=&quot;#other-backup-systems&quot; aria-label=&quot;Anchor link for: other-backup-systems&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Rsync-incr is not the only open source smart and simple backup system.
It is I think unique in its automated claculation of free space and
smart removal of old backups to make room for new ones. But other ones,
can be more relevant to your needs, for instance:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;rdiff-backup.nongnu.org&#x2F;features.html&quot;&gt;rdiff-backup&lt;&#x2F;a&gt; that only
stores differences in files. For instance for big log files,
rsync-incr will archive a full copy of the log (although it would have
transferred on the network only the changed lines), whereas
rdiff-backup will only store the actual added lines and is much more
space-efficient backup-side. However, you do not get the easy
browsing, access and comparison on backups that rsync-incr offers&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.dirvish.org&#x2F;&quot;&gt;dirvish&lt;&#x2F;a&gt; nice fast backup, but do not
automate expiration of backups&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;rsnapshot.org&#x2F;&quot;&gt;rsnapshot&lt;&#x2F;a&gt;
is more powerful and integrated, in perl having features that
rsync-incr leave to a wrapper script&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;history&quot;&gt;History&lt;a class=&quot;zola-anchor&quot; href=&quot;#history&quot; aria-label=&quot;Anchor link for: history&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;v1.9&lt;&#x2F;strong&gt; 2017-06-13 faster method to remove directories with huge
number of files. new option --inodes=N&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.8&lt;&#x2F;strong&gt; 2011-07-11 fix for working across mounted partitions with new
option --cross-devs, rsh support dropped, only use ssh now&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.7&lt;&#x2F;strong&gt; 2009-01-01, bug fix: could fail if was restarted on the same
dirs in the same minute &lt;br&gt; 2009-01-05 this documentation
updated: the &lt;code&gt;--no&lt;&#x2F;code&gt; option is in fact &lt;code&gt;--clean&lt;&#x2F;code&gt;. Code is inchanged, no
need to re-download. &lt;br&gt; new &lt;a href=&quot;&#x2F;code&#x2F;detailed-example-of-rsync-incr-operation&quot;&gt;subpage&lt;&#x2F;a&gt;
to give a detailed example&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.6&lt;&#x2F;strong&gt; 2008-12-19, works with destdir on NFS now (before was not
removing old backups due to free space calculations not working on
NFS), &lt;br&gt; new &lt;code&gt;--no&lt;&#x2F;code&gt; option.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.5&lt;&#x2F;strong&gt; 2008-10-12, nothing changed, only packaging doc, and web page
moved here. No need to upgrade&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.4&lt;&#x2F;strong&gt; 2007-02-26, bug fix by Jeremy Lingmann: on system with long
device names wrapping enabled, rsync-incr was unable to compute free
space. We now use df -P to fix this. This is the only change, upgrade
recommended.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.3&lt;&#x2F;strong&gt; 2006-08-08, bug fix: rsync options with metacharacters were
not working (e.g the * in: --exclude=&#x27;&#x2F;tmp&#x2F;*&#x27;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.2&lt;&#x2F;strong&gt; 2006-06-21, bug fix by Jiri Voves: --pbsm option worked only
for sizes given in megabytes (with appended &quot;m&quot;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.1&lt;&#x2F;strong&gt; 2005-03-25, bug fix: in some cases some old backups were not
deleted. if day of month started with 0.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v1.0&lt;&#x2F;strong&gt; 2005-02-19, first public release&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;v0.9&lt;&#x2F;strong&gt; 2004-12-15, internal beta test&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;comments&quot;&gt;Comments&lt;a class=&quot;zola-anchor&quot; href=&quot;#comments&quot; aria-label=&quot;Anchor link for: comments&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Detailed example of rsync-incr operation</title>
        <published>2009-01-11T00:00:00+00:00</published>
        <updated>2009-01-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://colas.nahaboo.net/code/detailed-example-of-rsync-incr-operation/"/>
        <id>https://colas.nahaboo.net/code/detailed-example-of-rsync-incr-operation/</id>
        
        <content type="html" xml:base="https://colas.nahaboo.net/code/detailed-example-of-rsync-incr-operation/">&lt;p&gt;Let&#x27;s say we have a source directory, &lt;code&gt;dir&lt;&#x2F;code&gt; that we are going to backup
into &lt;code&gt;backup&lt;&#x2F;code&gt; with default options and &lt;code&gt;backup--snap&lt;&#x2F;code&gt; with &lt;code&gt;--snap&lt;&#x2F;code&gt;. We
will have in it the files:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- On Day 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;- On Day 2&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - A is Added&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - B stay the same in Both days&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - C is Changed&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  - D is Deleted and not there anymore&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;so-on-day-1&quot;&gt;So, on Day 1:&lt;a class=&quot;zola-anchor&quot; href=&quot;#so-on-day-1&quot; aria-label=&quot;Anchor link for: so-on-day-1&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We set up the source&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# mkdir dir; echo bbb &amp;gt;dir&#x2F;B;echo ccc &amp;gt;dir&#x2F;C;echo ddd &amp;gt;dir&#x2F;D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -l dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;We backup normally&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# rsync-incr 5 dir backups&#x2F;dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -lR backups&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:40 dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:42 dir.past&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups&#x2F;dir:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups&#x2F;dir.past:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 4&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 17 Jan 10 23:42 LAST_DATE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;We backup with --snap&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# rsync-incr --snap 5 dir backups--snap&#x2F;dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -lR backups--snap&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:40 dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 3 colas local 4096 Jan 10 23:44 dir.past&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir.past:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:44 2009-01-10.23h44-0m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 17 Jan 10 23:44 LAST_DATE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir.past&#x2F;2009-01-10.23h44-0m:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 0 &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;on-day-2&quot;&gt;On day 2&lt;a class=&quot;zola-anchor&quot; href=&quot;#on-day-2&quot; aria-label=&quot;Anchor link for: on-day-2&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We set up the source&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# rm dir&#x2F;D; echo aaa&amp;gt;dir&#x2F;A; echo CCC&amp;gt;dir&#x2F;C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -l dir&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:48 A&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:48 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;We backup normally&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# rsync-incr 5 dir backups&#x2F;dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -lR backups&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:48 dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 3 colas local 4096 Jan 10 23:50 dir.past&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; backups&#x2F;dir:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:48 A&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:48 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; backups&#x2F;dir.past:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:50 2009-01-10.23h42-1m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 17 Jan 10 23:50 LAST_DATE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; backups&#x2F;dir.past&#x2F;2009-01-10.23h42-1m:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:40 D &lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;There, you can see that the &quot;past&quot; backup dir contains an image of the
whole of dir the &quot;day&quot; before. But you see that B has a link count of 2
so is shared between the 2 backup dirs, whereas C is not, the 2 C files
have different contents&lt;&#x2F;p&gt;
&lt;p&gt;We backup with --snap&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #4C4F69; background-color: #EFF1F5;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# rsync-incr --snap 5 dir backups&#x2F;dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;# ls -lR backups--snap&#x2F;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 8&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:30 dir&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 4 colas local 4096 Jan 10 23:30 dir.past&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:30 A&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 2 colas local 4 Jan 10 23:27 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:30 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir.past:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:30 2009-01-10.23h30-0m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;drwxrwxr-x 2 colas local 4096 Jan 10 23:27 2009-01-10.23h30-1m&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 17 Jan 10 23:30 LAST_DATE&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir.past&#x2F;2009-01-10.23h30-0m:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;backups--snap&#x2F;dir.past&#x2F;2009-01-10.23h30-1m:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;total 12&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 2 colas local 4 Jan 10 23:27 B&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:27 C&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-rw-rw-r-- 1 colas local 4 Jan 10 23:27 D&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;There, you can see that the &quot;past&quot; backup dir contains an image of the whole of dir the &quot;day&quot; before. But you see that B has a link count of 2 so is shared between the 2 backup dirs, whereas C is not, the 2 C files have different contents&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
