I'm using Unison to synchronize my music collection to a few different sources, namely a couple computers over SSH and a hard drive.

One thing I've noticed is that SSH updates are incredibly fast in comparison to hard drive syncs, possibly because rsync (or whatever's running under the hood) is only moving what's changed. Add that to the fact that I can run multiple SSH copy actions at once and copying to a local USB hard drive is left in the dust, as it only copies one file at a time and overwrites the entire file every time.

When changing the encoding of ID3v1 tags (for compatibility tests), my entire ~5000 file music library changes needs to be backed up to the other computers and hard drive.

Is there any way for me to:

  1. increase the number of simultaneous copies; and
  2. only copying the parts of the files that have changed?

Here's my Unison profile:

# Unison preferences
batch = false
confirmbigdel = true
copymax = 10
logfile = .unison/unison-music.log
maxthreads = 30
perms = 0
sortbysize = true

root = /home/me/Music
root = /media/truecrypt1/media/music
  • Why don't you also use rsync for the hard drive? And are you using unison or rsync, or plain scp? It's really hare to tell from your post/question.
    – Mat
    Mar 25, 2012 at 19:08
  • I'm using Unison and assuming that under the hood, it uses rsync to move files around. Mar 25, 2012 at 20:10
  • Unison doesn't use rsync at all. (See the papers linked on the main site.)
    – Mat
    Mar 25, 2012 at 22:06
  • that conflicts with their tutorial here: cis.upenn.edu/~bcpierce/unison/download/releases/stable/… see 'copyprog xxx' where it states 'The default setting invokes rsync with appropriate options—most users should not need to change it.'
    – john-jones
    Aug 13, 2013 at 12:08

3 Answers 3

copythreshold = 1024

Then unison changes files bigger than 1Mb in place using rsync instead of completely re-transferring.


Make sure that the fastcheck option is turned on (it should be by default if both sides are unix systems). By default, Unison looks at the whole contents of every file on each side. This is safer: it guarantees that after Unison has run, the contents are the same on both sides. It is also faster if the modification time of a file may change for spurious reasons. For large files, this can be slow. With the fastcheck option, Unison will consider a file to be unchanged if its size and modification has not changed (rsync does this optimization by default).


Look at man rsync and search for the whole file option. --no-whole-file is possibly what you are looking for. I guess unison has a similar option.

You must log in to answer this question.

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