97

It seems that rsync is the de-facto standard for efficient file backup and sync in Unix/Linux.

Does anyone have any thoughts on why it wouldn't have caught on in the Windows world?

Why hasn't it become a universal 'protocol' for file sync?

Vignesh
  • 101
  • 3
jtalarico
  • 247
  • 1
  • 6
  • 11
  • 4
    It's because there is not a decent port, and because Windows people are used to It Just Works. The existing not-quite-ports are a big PITA. – RomanSt Feb 04 '11 at 14:14
  • 1
    Windows already provides delta synchronization through DFS and [RDC](http://en.wikipedia.org/wiki/Remote_Differential_Compression) that can be centrally managed, massively deployed,configured etc. – Panagiotis Kanavos Jun 23 '14 at 08:24
  • @p.campbell, There is cwrsync for windows – Pacerier May 09 '15 at 21:29

18 Answers18

62

I'm suprised no-one has mentioned DeltaCopy, which is rsync packaged in a windows GUI. It can even install itself as an rsyncd-compatible service.

Sekenre
  • 2,913
  • 1
  • 18
  • 17
  • 3
    +1 I cannot upvote this enough. DeltaCopy is how we backup a couple of linux servers to our Windows-based backup server. Rsync on Ubuntu right into the DeltaCopy client on Windows. – Matt Everson Jul 03 '09 at 17:16
  • it does not seem to play nice with ntfs security permissions – JamesRyan Jan 12 '11 at 16:06
  • Can that pull files via SSH, without rsyncd on the remote Linux machine? – Cees Timmerman Aug 21 '15 at 11:50
  • 1
    When rsync runs over ssh, it starts an rsync process on the other side. You do not need to configure a standalone rsyncd running on the remote, but you do need to have it installed. – Sekenre Aug 24 '15 at 10:12
  • DeltaCopy as server on windows, cron script running rsync to a linux box and rsnaphot to achieve "Time Machine" backups. Priceless. – MGP Jun 22 '16 at 01:38
47

I would say mostly because people in windows are unaware of it. Rsync is a command-line utility that is consistent with the unix philosophy of having lots of small tools preinstalled. The windows philosophy is based around GUI applications that are all downloaded and installed separately. There is not a smooth integration spot where rsync would be obvious or make much sense, and running commands on a windows system is tedious at best.

Also, rsync really shines when its part of a larger application (say for consolidating and parsing logs), or as an automated archival system (implemented easily with a cronjob). Windows simply doesnt have the other tools in its ecosystem to make using rsync actually viable.

Finally, I would say that rsync is just too freaking complicated. Anyone I know who uses it regularly has a pre-set group of flags (mine is -avuz) that generally does what they want, but the man pages / documentation lists dozens of command-line switches, some of them amalgamations of other switches. For example (from the [man page][1]):

-a, --archive: archive mode; equals -rlptgoD (no -H,-A,-X)

It is a quick way of saying you want recursion and want to preserve almost everything (with -H being a notable omission). The only exception to the above equivalence is when --files-from is specified, in which case -r is not implied.

Windows users generally expect, well, windows, and menus, and to have a single app be an all-in-one solution, not just an independent piece of a tool chain.

HEDMON
  • 477
  • 3
  • 17
  • 11
    I totally agree with you ! Man pages are the worst way to understand rsync and many other applications. – Antoine Benkemoun Jul 03 '09 at 07:01
  • Time to switch to openbsd ! – Maxwell Oct 15 '09 at 09:03
  • 2
    Actually, it's the reverse. UNIX/Linux people don't know that Windows provides provides DFS and RDC since 2006 at least. It's easy to setup, manage, deploy to entire domains (ie hundreds or thousands of desktops with dozens or hundreds of clients). – Panagiotis Kanavos Jun 23 '14 at 08:30
  • 3
    @PanagiotisKanavos Except DFS is different to rsync. NFS (or a number of other protocols) are available on Linux based OS, but rsync is generally used for staged backups, once off transfers, etc. Apples and oranges. – Andrew White Aug 05 '14 at 11:54
  • @AndrewWhite I wrote DFS, not NFS. The equivalent of the rsync protocol is RDC. Anyway, the OP asked why Windows environments don't use rsync, the answer is that there are different tools and services to cover the same scenarios. Moreover, in Windows environments syncing/backing several hundreds of client computers (or folders with self-service support) is a much more important scenario than supporting several dozens of servers. Apples and oranges, yes, and rsync isn't suited to the requirements of Windows environments – Panagiotis Kanavos Aug 05 '14 at 13:17
  • 1
    @PanagiotisKanavos Yep, saw that, wasn't getting them mixed up. I disagree rsync isn't suited to Windows based environments, however it's not suited to the types of things you're discussing (DFS for continual "live" sync as opposed to rsync for incremental data backup). There are Linux based environments where a live sync is more suited and incremental is not either. I think the application environment is more relevant than the underlying OS one. – Andrew White Aug 06 '14 at 10:50
  • 1
    This is the best answer. Too many of the other answers focus on Windows users needing a GUI, which is like comparing an engineer to an end-user. Rsync is a file syncing utility - who is going to do that? Power users, developers, engineers, etc etc. But have you ever had to wrestle with getting rsync set up on a windows box? You have to wade through Cygwin documentation, hope that you're installing the right packages, and then finally once you've figured out what you need on your own, you're ready to go. Outside of lack of awareness, it's the technical hurdle that is the reason nobody uses it. – dudewad Feb 12 '15 at 17:19
  • 1
    @liam, Command line is command line. Why do you say *"running commands on a windows system is tedious at best"*? – Pacerier May 09 '15 at 21:27
  • 5
    @Pacerier : "Command line is command line" ? You are either extremely tolerant, or you only know one and not the others. For any normal person who knows Bash in Linux/Mac (or any of the other Unix shells), cmd.exe is so crippled that saying it is "tedious at best" is still an understatement. – mivk Jun 07 '15 at 19:22
  • 2
    "and running commands on a windows system is tedious at best." - either you haven't done much of it, have never heard of Powershell, are a Linux fanboy, or all of the above. It's not really any different from doing it on Linux these days. – Alan B Aug 19 '15 at 09:22
  • @AlanB At the risk if igniting a flame war, Windows command line does need help. PowerShell is a step in the right direction but it came out of handing .Net to the MS Posix team and a bunch of Haskel guys so it's a mix of all of the above. Usually that works out nice but it quickly gets in the weeds because cmdlets aren't commands in the traditional sense. It's as much an apples to orangs as RDC to rsync. All that said, a command line utility that used the RDC subsystem and allowed me to sync files ad-hoc like rsync would be fantastic but no one has built it yet. And no robocopy isn't it. – sean_m Sep 13 '16 at 19:15
11

In my opinion, because there is no decent GUI.

Another argument may be that there is robocopy. Robocopy is missing many cool features that rsync offers, but in most situations robocopy is just sufficient for the job at hand.

Ludwig Weinzierl
  • 1,170
  • 1
  • 11
  • 22
  • 4
    robocopy doesn't do a thing to optimize remote copies, which is the main innovation of rsync. i'd say that not having a click-pointy GUI is the only excuse for not trying it – Javier Jul 02 '09 at 21:11
  • 2
    In the windows world working with "remote" files often involves sharing the remote disc, and then doing "local" file operations. And for that robocopy is sufficient. –  Jul 02 '09 at 22:12
9

I use the Cygwin rsync extensively and it works very well.

But ...

It is a bugger to install and configure. You have to do a full Cygwin install just to get one binary and three dlls, and it isn't obvious which three dlls are needed. How to run it as a service is not obvious and the command line syntax is complex. Non-nerds are like to give up very quickly.

Also it messes up permissions to the point where I always set cygwin=nontsec, and it regularly hangs. I understand the hang is a known problem with the Cygwin dll rather than rsync itself (which is not a criticism of the Cygwin guys. What they've achieved is little short of miraculous!).

Rsync is extremely useful if you do any sort of replication over WAN links, and it's on my todo list to write a native Win32 version. Sadly it's been on my todo list for several years and is no closer to the top. I don't think just writing a GUI wrapper is a big step forward as fails to address some of the fundamental problems with the Cygwin version.

If anyone is interested, http://www.ratsauce.co.uk/notablog/UsingRsync.asp describes the results of my many hours of pain getting Cygwin rsync to work on Windows.

JR

John Rennie
  • 7,756
  • 1
  • 22
  • 34
  • amen to that, though it installed and worked fine on my XP system, Vista didn't like it at all. Rsync is the business, if there was a native port of it to Windows, I'm sure it'd be used a lot more. – gbjbaanb Jul 03 '09 at 09:40
  • Git for Windows installation gives configured bash and CygWin out of the box. You may even select an integration of unix commands to CMD. Voila, I forget using PowerShell or CMD ) – it3xl Sep 22 '17 at 06:48
8

I would say that for smaller computer to computer syncs, people are using Robocopy, SyncToy, or Foldershare (now Live Sync). For the large enterprise distributed multimaster file share scenarios, they are using Distributed File System (DFS). Those tools handle most sync scenarios just fine, leaving very little benefit to installing, learning, and using a recompiled *nix app on Windows.

Sean Earp
  • 7,207
  • 3
  • 34
  • 38
7

What would your average Windows user use it for?

jalf
  • 282
  • 1
  • 8
  • 3
    +1 for being true - windows user's backup is mostly "drag and drop it to a separate/external harddrive" – LiraNuna Jul 03 '09 at 00:31
  • 17
    I rarely mark replies down, and I'm not going to mark this one down, but since when has ServerFault been a forum for average Windows users? For the sysadmin, offsite replication is becoming increasingly important. Big companies will probably just buy DPM to use over their T3 connections. We humbler types need something that will work at ADSL upload speed, and rsync does this very well. – John Rennie Jul 03 '09 at 10:13
  • 3
    @John: yes, but people aren't going to use rsync unless they know it exists. rsync has been used, and useful, to "typical" \*nix users for ages, and so any \*nix sysadmin worth his salt knows about it. On Windows? Not so much. Windows is (and probably more importantly, *was* aimed at a different audience, one which had no interest in, or use for, tools like it. And since Windows sysadmins usually start out as Windows *users*, the tools they use are influenced by which tools Windows *users* use. You're mixing two different concerns (*why* isn't it popular, vs *would it be useful*) – jalf Mar 24 '11 at 07:49
  • I just answered the former, I'm not denying that it would be useful – jalf Mar 24 '11 at 07:50
  • Yes but there are a lot of Windwos servers around that also need to be backed up. – kiltek Apr 18 '17 at 08:37
4

IMO:

rsync is far less likely to be installed on machines one comes across in the Windows world while the Resource Kit with robocopy is often installed (or at least it's on an "approved" list of software that can be installed on a production system).

As others have pointed out, robocopy is generally more than adequate to skin whatever cat is at hand. It may not be quite as nice as rsync but it's a good tool.

Lack of GUI may be a factor but even though there's a front-end available for robocopy, I find that most folks figure out the robocopy switches needed and stick it in a .bat file.

damorg
  • 1,198
  • 6
  • 10
  • With Windows 2008 (and up I assume) robocopy comes included with the OS so there's no need to install it any more. – mrdenny Jul 02 '09 at 23:25
  • I didn't realize this. Thanks for info...we're at least a year away from 2008 in our environment and I haven't kept up since moving out of AD administration. – damorg Jul 02 '09 at 23:37
  • Robocopy is installed by default in Vista and Windows 7 as well, and possibly in their PE counter-parts too. – Oskar Duveborn Jul 03 '09 at 16:32
  • Robocopy won't transfer just the CHANGED parts of files, so large files with small changes copy very slowly compared to what rsync does. – JustinP Jan 19 '12 at 10:54
4

I use robocopy in windows - which comes preinstalled in windows vista and windows 7, and is up to any backup situation I encountered so far.

Sam
  • 909
  • 4
  • 15
  • 26
2

Oh boy, you guys have obviously been missing the utility "Unison". I've been supporting some major US/EUR "realtime" infrastructures and I have to say everyone has very similar problems... how to replicate and be able to be active-active all the time... if you don't care about session persistence then this thing is the bomb... best thing I've found in solaris extras :-)

dounoit
  • 1
  • 1
2

The easiest to use/install rsync GUI application I've found for Windows has been grSync.

(Screenshots: http://www.opbyte.it/grsync/screenshot.html)

If it were more popular, maybe rsync would be used more.

l0c0b0x
  • 11,697
  • 6
  • 46
  • 76
2

My guess is that it simply doesn't have a GUI. For easy sync tasks Microsoft even offers Sync Toy, and rsync could do much more ...

  • ACtually there is a GUI for it: http://www.sepiola.org/en/home/ I talked with the developers of Sepiola once and they told me that they just made a GUI around rsync. –  Jul 02 '09 at 22:00
  • 2
    I downvoted this, because it suggests that Windows sysadmins are lost without a GUI. Which isn't really true; most good admins are fine with commandline utilities. – quux May 23 '11 at 05:49
2

For what it's worh, there is a perfectly functional rsync for Windows that does not need installation of Cygwin. I have been using it to backup different parts of my data to different drives. It is useful to exclude particular directories, but probably other utilities do it also.

Nestor

  • It still uses Cygwin, which means it's dll could mess with other apps that might use Cygwin. It's generally better to just install Cygwin in these cases. – dlamblin Jul 23 '09 at 07:24
0

There are some newer rsync guis in development. One I came across recently through wikipedia is yintersync. It looks pretty comprehensive as a gui for rsync on windows and rather neatly also supports shadow copies for replicating live files.

I have recently tested this on my work dr system with good results. It has a built in scheduler and email reports. This may help rsync catch on finally to the windows crowd

0

I belive rsync can be used under cygwin in windows world :) cygwin is easy to install and use, however for ordinary users who love GUIs it is not very common. so we get two barriers:

1) lack of GUI frontend

2) even if there was a GUI frontend in tcl/tk for example - the need to install cygwin is a barrier.

and rsync is not proprietary software which wants to sell itself and therefore struggles to eliminate barriers before potential customers. As Joel sais: eliminating one barrier doubles your userbase. So here we have barriers for windows users - as a consequence small userbase on Windows platform.

user11722
  • 1,243
  • 3
  • 10
  • 6
0

We built a GUI for Rsync and Windows.

The computer/backup server you connect to needs to be running SSH and Rsync.

Let me know if you have questions by commenting on this answer.

p.campbell
  • 4,397
  • 6
  • 40
  • 51
jchawk
  • 348
  • 1
  • 6
0

The lack of gui is not really a problem. xacls, robocopy, net, sc are very usefull and don't have any gui. I believe that if rsync is not used, it is more due to the fact that:

  1. Windows lacks a real shell and a real scripting language. And people that use batch are also using robocopy.
  2. Since 95, Windows comes with an easy-to-use graphical tool (named "Porte document" in the french version). Since Windows 2000 (or XP?), there is a "synchronise" menu in the explorer.
Bryan
  • 7,538
  • 15
  • 68
  • 92
Benoit
  • 3,499
  • 1
  • 18
  • 17
  • The definition of "real" is? ^^ – Oskar Duveborn Jul 03 '09 at 16:33
  • A real shell allows to customise more than prompt, windows size or tile. It ofers the ability to do every tasks you want to (managing user accounts, tuning the system configuration, ...). A real scripting language allows to define the environnement (Have you ever tryed to use the "date" command in a multi-countries environnement?) and can be used in a interractive prompt (unlike vbs/js). – Benoit Jul 03 '09 at 18:10
  • PowerShell satisfies all your requirements and has been a part of Windows since 2006. It integrates with .NET, so I actually prefer it to Bash in some cases. – James Jul 15 '11 at 04:36
0

I use robocopy for rsync-like behavior in windows.

Basically, I wrote a backup.bat file that I have on an external drive. I regularly run the file to back my desktops up to the external drive. Then I store the external drive in a fireproof safe.

Scott
  • 1,062
  • 1
  • 11
  • 11
0

Exact same reason tar and bzip2 are unheard of. It very much doesn't fit into Windows well. zipping a directory and shuttling it over SMB fits into Windows better, and seems almost as fast in numerous cases. That's not really my dream for a better world, but it's a reality to grapple with. Most all windows machines don't have any unix layer installed. Unlike, Mac OS X.

dlamblin
  • 929
  • 2
  • 10
  • 20