Programs of Hyper

UniSync

Universal offline/online direcotry sync/diff utility (C++, Multiplatform)

UniSync is a small command line utility with the UniSyncGui graphical frontend to achive the following goals:

Search the differences of two directory structure.

Checks the directories, file sizes, modification times, and file hashes (md5,sha256). You can compare two (same time available) directory contents, or you can even compere two offline directory structures too. UniSync can create a catalog file which contains, the stucture, the sizes, hashes, etc,.. and later comperes it to another directory on a different machine too.

Syncronize two directory structure.

Checks the directories, file sizes, modification times, and file hashes (optional) and syncronioze the differences of the directories.

Creating incremental backup of a directory structure.

Because the unisync can generate an update package from a directory structure according to a catalog file it can be used to generate incremental backup of a directory tree. The only necessary thing you have to do is to create a catalog with unisync when the full backup is archived. Later the unisync can compare the data matching to the live data and create a directory as incremental backup.

Offline syncronize two directory structure.

The unisync can even syncronize two directories which can't available same time. The unisync can make a catalog from the OLD directory structure. After you tranfer this small catalog file to the second place where the NEW directory structure is located, the unisync can generate and "update package" to sync the OLD directory to same content as NEW. After you bring back the update package to the OLD directory, the unisync can apply this update. This way you can syncronize two different located not available directories with big amount of data. Of course the "update package" contains the modified and new files only.


Documentation / User manual

Examples

Check the dirrefences of D:\MyPics and X:\MyPicsBackup with SHA256 hashes.

  unisync diff D:\MyPics X:\MyPicsBackup -sha2 -v

Synronize the dirrefences of D:\MyPics and "X:\MyPics Backup" with SHA256 hashes, and be extra verbose.

  unisync sync D:\MyPics "X:\MyPics Backup" -sha2 -vv

Make a catalog (with md5) from A computer's /mydata and compere its to B computer's /mydata and print the dirrerences, extra verbose.

  #On computer A
unisync create /mydata cat:/media/pen/catalog.usc -md5 -vv
  #On computer B
unisync catdiff cat:/media/pen/catalog.usc /mydata -vv

Syncronize the B computer's /backupmydata to A computer's /mydata offline. (using a pendrive)

  #On computer B we create a catalog
unisync create /backupmydata cat:/media/pen/catalog.usc -v
  #On computer A we make an update package
unisync makeupdate /mydata cat:/media/pen/catalog.usc update:/media/pen/update_mydata -v
  #On computer B we apply the update package
unisync applyupdate /backupmydata update:/media/pen/update_mydata -vv

Synronize of D:\Works and X:\BackupWorks with SHA256 hashes, excluded .git directories

  unisync sync D:\Works X:\Backupworks -sha2 -excld=".git" -vv

Synronize of D:\Pictures and X:\BackupPictures without hash, excluded Thumbs.db files, check the modification times too.

  unisync sync D:\Pictures X:\BackupPictures -nohash -exclf=Thumbs.db -mtime

Screenshots

unisync screenshot 1 unisync screenshot 2

Download

https://github.com/hyper-prog/unisync Win/Linux sorce
https://github.com/hyper-prog/unisyncgui Win/Linux sorce
The unisync gui source doesn't contains the unisync sources.
Requirements for GuiSync: C++ compiler
Requirements for GuiSyncGui: C++ compiler, Qt


The windows binaries are downloadable from git release page:
https://github.com/hyper-prog/unisync/releases (UniSync only)
https://github.com/hyper-prog/unisyncgui/releases (UniSync and UniSyncGui)
Author: Péter Deák
License: GPL v2
Contact Email: emailaddrat gmail.com