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 '12 at 19:08
  • I'm using Unison and assuming that under the hood, it uses rsync to move files around. – Naftuli Kay Mar 25 '12 at 20:10
  • Unison doesn't use rsync at all. (See the papers linked on the main site.) – Mat Mar 25 '12 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.' – Hermann Ingjaldsson Aug 13 '13 at 12:08
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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.