[ DIGISYNC 2.1 ]

DigiSync Version 2.1

File synchronization that REALLY works.

DigiSync written by Andreas Balthasar aka. Digioso (webmaster@digioso.com https://digioso.org)
Released under the terms and conditions of the GNU General Public License (https://gnu.org).

Important: Please read this file carefully before using DigiSync !


Download DigiSync 2.1
Version History
What is DigiSync and what can it do?
What can it not do?
Running DigiSync

Download DigiSync 2.1:

Windows including Sourcecode: https://digioso.org/DigiSync Windows
Other operating systems (Sourcecode): https://digioso.org/DigiSync

Version History:

15.07.2007 - 1.0 - initial version
06.08.2013 - 2.0 - now can run in non-interactive mode and writes log files for each run
07.08.2013 - 2.1 - fixed some typos


Thanks a lot for choosing DigiSync.
In this short introduction I'd like to write a bit about the reasons why I wrote this program.

Well, the reasons are fairly simple. In 2007 my PC had around 1TB of disk space and I bought
two additional 500GB external USB disks where I wanted to back up my data to.
In total I had around twenty partitioned drives in Windows.
I tried several freeware tools (GoodSync, Allway Sync and who knows what else) but all of them
did not manage to properly synchronize my data. Some of them crashed, others just did nothing or were slow as hell.
After a couple of weeks of testing I had enough and decided to write my own tool. Since I'm a fairly decent Perl programmer I chose
Perl as my programming language of choice.
The big plus with Perl is that it is operating system independent. So as long as you have Perl installed you can run Perl programs. Perl
is available for almost any operating system including Windows, Linux, Solaris, MAC OS, ...
And you can even create binaries out of Perl programs so that you don't even need to install Perl to run a Perl program.
Anyway, enough for the reasons, let's go on with the important stuff.

What is DigiSync and what can it do?

It's a synchronization tool, nothing more, nothing less.
Basically it takes a source directory and creates a target directory which has the same contents as the source.
If you change something on the source (EG: create or change a file or delete one) these changes will be taken over to the target as well by running DigiSync again for this source/target combination.
These source/target pairs are stored in a configuration file called config.ini which is basically a simple text file.

What can it not do?

This is no backup tool! It doesn't have different states of the source. The target is exactly as your source.
So if you delete a file by accident and don't notice and then start DigiSync - your file will be deleted on the target as well. It doesn't
use compression although it works nicely with for example the Windows compression you can activate for drives.
At least my backup drive uses Windows compression to save a bit of space.

And - this is really important - DigiSync CANNOT synchronize files that have UTF encoded names properly.
This is unfortunately a limitation with Perl I so far have not found a way to fix.
So if you have files with Japanese characters in their names for example the file will be copied but you will lose your file name.
An example:
I have a Japanese Music video with the file name: [youshikibi] 浜崎あゆみ (Ayumi Hamasaki) - Melody (1280x720h264 AAC) [398043f1].mp4
On the target this file is called: _YOUSH~1.MP4

This is one big downside I have. If you have lots of those files and need to keep their names this is unfortunately not the right tool for you, yet. I'm still looking for a solution for this.

Since this is a simple synchronization tool it does not provide backups as stated above.
You cannot restore your Windows from the target as stuff like ASR or VSS is not being considered. Same goes for open files.
Depending on the OS you run it on it could still be possible to use the synchronized folder for a restore, though.
For example AIX has a pretty simple system structure and its system files can be overwritten during runtime.
Might work for Linux or other OS as well. But I can say for sure that it does not work for Windows.


Depending on what you downloaded (Binary or Source code) you may need to install Perl first before you can DigiSync. If you downloaded a binary this is not needed. If you downloaded the source code then you need to install Perl first. To get Perl visit this website: http://www.perl.org/get.html
For Windows I'm personally using Strawberry Perl but it should not matter which Perl distribution you use. If for whatever reason DigiSync is complaining about missing modules, you can try to download them from http://www.cpan.org/
or contact me if you need help.

If your Perl installation (only for Unix/Linux based OS and only if you're not using a DigiSync binary) is not in /usr/bin/perl you can
either create a symbolic link (ln -s /path/to/your/installation /usr/bin/perl) from your installation to /usr/bin/perl or change the first row
in digisync.pl to point to your installation.

After all this we finally come to the installation of DigiSync itself, which is fairly simple. Just extract the zip file to a location of your choice. That's it.
For the configuration part there is a sample config.ini included in the zip-file.

The file is built like the following:


The ID needs to be unique and needs to consist of only numbers. I recommend starting with 0 for the first entry, then
1 for the next, 2, 3, ...
Please note that even for Windows I am using Slashes (/) and not Backslashes (\) and drive names are in lower case.
This is important!
So it's d:/music and not D:\music !

If you're done with this then you're good to go and can start the tool. On Windows you need to make sure that your target drive is available, otherwise you'll run into errors. DigiSync creates all other subdirectories (if needed) on its own.

Another note on Windows: If you want to copy files that are normally protected by Windows itself (EG: the Windows-directory) you need to give Administrator-Access to the Perl or DigiSync executables. Please read the OS manual (or look on Google) if you don't
know how to do this.
I installed Strawberry Perl to D:\strawberry so the executables can be found in D:\strawberry\perl\bin:

Running DigiSync

There are two different ways to run DigiSync:

Just start it by double clicking or issuing ./digisync.pl on the command line. On Windows make sure that Perl source files are opened with Perl and not with a text editor. Please check the documentation for your OS on how to run a program.

You'll see a screen similar to this depending on your OS:

You can select single jobs by entering their number and then pressing ENTER.

To start the synchronization input "S" (for Start) and hit ENTER.
With Q(uit) you can exit DigiSync.
If you want all jobs to run you can either input all of your numbers and then S(tart) them or you A(ll) which starts all jobs.

2) DigiSync accepts a couple of parameters on the command line.

The second way can be used for scripting purposes for example.
Whichever way you use both will do the same in the end.
DigiSync will create a subdirectory in the directory you put it in called "out". In this directory it will store log files for each run where it writes what it did, which files it copied and so on.

And you will notice one more file on your source and on your target called "digisync.ds". This file is used by DigiSync to write down all files that it has backed up and it will use these files to decide whether it needs to copy a file to the target or not. Do not edit those digisync.ds files on your own otherwise it might result into incomplete synchronizations or files that shouldn't exist on the target anymore because they do no longer exist on the source.