How-To: Fast file synchronization between linux and windows box

Many times, when I work on various projects, I need to synchronize files between my windows box and linux server.

WinSCP has the nice synchronize feature, but it's very slow and inaccurate in some cases.

My first thought was to install cygwin and use rsync, but it gets easier than than. All you need is DeltaCopy program on windows side and SSH server on linux side (you probably already have that).

Here are the steps I used to get it working:

First, we'll create the public & private key pair for password-less login. You can skip this part if you already have keys you would like to use.

On windows, you can use PuttyGen for that.

Generate the key, click on Conversions / Export OpenSSH key and save the key somewhere on disk.

[][]

Copy public key and paste it into .ssh/authorized_keys file for a remote user which will be used for synchronization.

Download DeltaCopy and extract it somewhere.

Run DeltaC.exe

Click 'Create new profile' and enter remote server data.  Remove 'Assign to scheduler' checkbox if you don't wan't periodic auto synchronization. Click 'Add profile'.

Under 'File list' tab, add folders/files you would like to synchronize. Right-click folder and select 'Modify target path' to change target. If you want to synchronize single directory, set empty target path.

Under 'Options' tab select 'Connect via SSH'.  Enter something like this into 'Additional parameters' field:

-e 'ssh -p SSH_PORT -l REMOTE_USER -i PRIVATE_KEY_FILENAME' --chmod=u=rwx,g=rwx,o=rx --exclude=".svn/" --exclude="logs/" --exclude="cache/"

Change SSH_PORT, PRIVATE_KEY_FILENAME and REMOTE_USER with your values. Copy private key to DeltaCopy directory or set full path here. Chmod switch is needed, because otherwise, all new files will be created using mask 000. You can specify folders/files to exclude with --exclude switch.

[][]

That's it! When you want to synchronize folders, right-click profile and select 'Run Now'.

[]: {filename}/uploads/2009/10/puttygen2.jpg []: {filename}/uploads/2009/10/deltacopy1.jpg

Useful tools / links