Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
DrakSync is intended for repeated synchronizations between directories on different hosts, e.g. a laptop and the office server and home desktop computer. It is not intended for "one shot" synchronizations, where you synchronize one directory once and then forget about it. While this is certainly possible with DrakSync, it is not its intended usage, and therefore not as straight forward and easy to perform as repeated synchronizations.
The basic object of DrakSync is a connection. A connection represents a directory on the local computer, and another directory on a remote host, to synchronize. A connection holds information about which protocol (data transportation method) to use to talk to the remote computer, the name of the remote computer, the username to use to log in to the remote computer, which directories to synchronize and how to synchronize them. For each directory you want to synchronize, you must set up a connection for each remote host you want to synchronize it with. Thus, you may e.g. have two connections for your home-directory - one to synchronize it with your home-directory on your office server, and another to synchronize it with your home-directory at your home desktop computer.
Connections are stored in groups. Each group can contain any number of connections. The connections in a group need not to share anything common, but it is convenient if all connections to the same remote host reside in the same group, since it is easy to synchronize all connections in the same group at once.
A connection can synchronize in one of three different ways - "local overwrites remote", "remote overwrites local" and "newer overwrites older". In the first mode, after a synchronization, both the local and the remote directory will look exactly as the local one did before the synchronization. This is equivalent (but faster than) to remove the directory at the remote host, and then copy the local directory to the remote host. The second one is similar, but in the opposite direction - after a synchronization, the directories will be exact copies of the remote directory just before the synchronization. In the last mode, both of the directories may change. If a file exist locally, but not remote, it is copied to the remote host. And vice versa if it exists remotely but not local. If a file exist both locally and remotely, and the local is newer than the remote (according to its file modification date), the local file is copied to the remote host and overwrites it, and vice versa if the remote file is newer than the local.
Currently, three different protocols are supported: Rsync over SSH (Secure SHell), Rsync over RSH (Remote SHell) and FTP (File Transfert Protocol). They are very similar in functionality, except that ssh is encrypted (hence the name). If your jurisdiction allows you to use encrypted communication, there is no reason to use rsh. However, in some places, encryption is prohibited by law, so you are forced to use the insecure RSH or FTP. Note that pass-phrases and other personal information is sent widely open for everyone to read if you use rsh. You have been warned.
Each time you synchronize a connection, you are asked for a pass-phrase for the remote host. If you use ssh, there is a way to avoid this. You may create an cryptographic "identification card". Such an "ID-card" consists of two files: the actual "ID-card" (~/.ssh/identity), and "blueprint-copy" (~/.ssh/identity.pub), which can be used to identify the ID-card. The blueprint-copy may be uploaded to remote accounts, allowing you (having the ID-card) to synchronize with those accounts without entering their pass-phrases.
The ID-card may for security reasons be protected by a pass-phrase, which you will be asked to enter at the first time you attempt to synchronize a connection, the first time you start DrakSync after a login.
To upload your ID-card to a remote account, select a connection to that account and open the edit dialog for it (select Edit from the connection menu). Then press the button labeled "Upload ssh public key". You will be asked for the pass-phrase of the remote account. If you don't already have an ID-card, you will be asked if you want to create one.
As a side note, the same "ID-card" is used by other ssh tools, in particular the ssh remote login shell itself. To use your identity with ssh, issue the command "ssh-add" and enter your pass-phrase (if you have one, otherwise just hit enter). After this, you may log in to remote accounts to which you have uploaded your blueprint-copy with the command "ssh username@hostname" and run programs on that remote computer. This is however far out of the scope of DrakSync, and you better take a look at the ssh info page for details.