I don't get --link-dest, at all

Scott Schappell archon at silvertree.org
Tue Aug 11 15:25:46 MDT 2009


Hourly I have an rsync job backup /home to /home/backup.  I have 24  
directories (one for each hour):

home.0
...
home.23

Here is the script I am running via cron:

#! /usr/local/bin/bash
dest=`date +%k | sed 's/ //g'`
linkdir=`date -v-1H +%k | sed 's/ //g'`
chflags -R noschg /home/backup
rm -rf /home/backup/home.$dest
rsync -ahHP --numeric-ids --delete --stats --link-dest=../ 
home."$linkdir"\
       --exclude=/backup/* /home/ /home/backup/home."$dest"/ > /var/ 
rsync.log
sleep 2
chflags -R schg /home/backup

Per reading this list and other google finds, it was stated that for  
link-dest to work, the destination must be empty, which I do.   
However, let's say a 2PM backup runs.  The 2PM backup has 2.7GiB (the  
current size of /home).  The 1PM backup directory is also 2.7GiB.

[root at arthur /home/backup/home.14]# du -hcd0
2.7G    .
2.7G    total
[root at arthur /home/backup/home.14]#

[root at arthur /home/backup/home.13]# !du
du -hcd0
2.7G    .
2.7G    total
[root at arthur /home/backup/home.13]#

For a specific file:

[root at arthur /home/backup/home.14/archon/public_html]# ls -li d2x.jpg
22963255 -rwxr-xr-x  2 archon  archon  47318 Oct 29  2008 d2x.jpg
[root at arthur /home/backup/home.14/archon/public_html]#

[root at arthur /home/backup/home.13/archon/public_html]# !ls
ls -li d2x.jpg
22963255 -rwxr-xr-x  2 archon  archon  47318 Oct 29  2008 d2x.jpg
[root at arthur /home/backup/home.13/archon/public_html]#

Both files share the same inode number, so I'm assuming it's a  
hardlink, but why is the home.14 directory still saying 2.7GiB used?  
Shouldn't it only be using whatever the delta is between home.13 and  
home.14 (in this case, rsync reported copying over about 40 MiB of  
data).

df -h shows that /home is 8.6GiB when only ~3 GiB is actually being  
used, so it's still creating fresh copies.

I'm guessing I'm misunderstanding what --link-dest does, as I  
understood it to create a hardlink to the file in the link-dest  
directory if the file does not exist in the destination directory.

Here's a log from the 2PM script run:

[root at arthur /var]# cat rsync.log
sending incremental file list
created directory /home/backup/home.14
archon/IMAPdir/Apple Mail To Do/
archon/IMAPdir/Deleted Messages/
archon/IMAPdir/Deleted Messages/bincimap-cache
        2.22K 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1943/2336)
archon/IMAPdir/Deleted Messages/bincimap-uidvalidity
           75 100%    0.60kB/s    0:00:00 (xfer#2, to-check=1942/2336)
archon/IMAPdir/Deleted Messages/cur/
archon/IMAPdir/Deleted Messages/cur/ 
1250024242.R2110010672M559524P93911Q41.arthur.silvertree.org:2,S
       24.44K 100%  194.07kB/s    0:00:00 (xfer#3, to-check=1921/2336)
archon/IMAPdir/Deleted Messages/new/
archon/IMAPdir/Deleted Messages/tmp/
archon/IMAPdir/Freecycle/
archon/IMAPdir/Freecycle/bincimap-cache
          876 100%    6.96kB/s    0:00:00 (xfer#4, to-check=1890/2336)
archon/IMAPdir/Freecycle/bincimap-uidvalidity
           74 100%    0.59kB/s    0:00:00 (xfer#5, to-check=1889/2336)
archon/IMAPdir/Freecycle/cur/
archon/IMAPdir/Freecycle/cur/ 
1250023358.R784558821M677376P93911Q39.arthur.silvertree.org:2,
        5.20K 100%   40.95kB/s    0:00:00 (xfer#6, to-check=1879/2336)
archon/IMAPdir/Freecycle/new/
archon/IMAPdir/Freecycle/tmp/
archon/Maildir/
archon/Maildir/bincimap-cache
        1.13K 100%    2.14kB/s    0:00:00 (xfer#7, to-check=1041/3870)
archon/Maildir/bincimap-uidvalidity
           75 100%    0.14kB/s    0:00:00 (xfer#8, to-check=1040/3870)
archon/Maildir/cur/
archon/Maildir/cur/1250021559.7658.arthur.silvertree.org:2,S
        7.60K 100%   13.45kB/s    0:00:00 (xfer#9, to-check=1026/3870)
archon/Maildir/cur/1250022468.8904.arthur.silvertree.org:2,S
        7.76K 100%   13.71kB/s    0:00:00 (xfer#10, to-check=1025/3870)
archon/Maildir/cur/1250022542.9042.arthur.silvertree.org:2,ST =>  
archon/IMAPdir/Deleted Messages/cur/ 
1250024242.R2110010672M559524P93911Q41.arthur.silvertree.org:2,S
archon/Maildir/cur/1250023069.9684.arthur.silvertree.org:2,ST =>  
archon/IMAPdir/Freecycle/cur/ 
1250023358.R784558821M677376P93911Q39.arthur.silvertree.org:2,
archon/Maildir/cur/1250023397.10077.arthur.silvertree.org:2,S
        4.68K 100%    8.26kB/s    0:00:00 (xfer#11, to-check=1022/3870)
archon/Maildir/cur/1250023861.10654.arthur.silvertree.org:2,S
        6.45K 100%   11.38kB/s    0:00:00 (xfer#12, to-check=1021/3870)
archon/Maildir/new/
archon/Maildir/tmp/
backup/
pinnacle/IMAPdir/Apple Mail To Do/
romany/Maildir/new/
romany/Maildir/new/1250023382.10044.arthur.silvertree.org
        2.49K 100%    0.00kB/s    0:00:00 (xfer#13, to-check=1001/22172)
romany/Maildir/tmp/
scott.schappell/IMAPdir/Apple Mail To Do/
scott.schappell/Maildir/
scott.schappell/Maildir/bincimap-cache
       46.29K 100%  279.03kB/s    0:00:00 (xfer#14, to-check=1004/24511)
scott.schappell/Maildir/bincimap-uidvalidity
           75 100%    0.30kB/s    0:00:00 (xfer#15, to-check=1003/24511)
scott.schappell/Maildir/cur/
scott.schappell/Maildir/cur/1250023996.10809.arthur.silvertree.org:2,
       20.12K 100%   66.38kB/s    0:00:00 (xfer#16, to-check=1024/24943)
scott.schappell/Maildir/new/
scott.schappell/Maildir/tmp/
soucon/3.1/game/data/sc.gdbm
       34.97M 100%   16.10MB/s    0:00:02 (xfer#17, to-check=1014/28108)

Number of files: 32052
Number of files transferred: 17
Total file size: 2.79G bytes
Total transferred file size: 35.10M bytes
Literal data: 35.10M bytes
Matched data: 0 bytes
File list size: 991.74K
File list generation time: 0.009 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 36.10M
Total bytes received: 2.71K

sent 36.10M bytes  received 2.71K bytes  4.81M bytes/sec
total size is 2.79G  speedup is 77.36

rsync version:

[root at arthur /var]# rsync --version
rsync  version 3.0.6  protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
     64-bit files, 32-bit inums, 32-bit timestamps, 64-bit long ints,
     socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
     append, ACLs, xattrs, no iconv, symtimes

Installed from FreeBSD 7.2 ports collection.

Thanks for any help in enabling me to understand how this works.

Scott




More information about the rsync mailing list