Home Home > 2009 > 01 > 08 > openSUSE Project Announces csync
Sign up | Login

openSUSE Project Announces csync

January 8th, 2009 by

Andreas Schneider has unleashed the first public release candidate of csync 0.42, which is now available as source from the csync Web site, or via one-click for openSUSE 11.0 and 11.1.

As mobile computing becomes more and more important, file synchronization is more important than ever. Our jobs often require working not only on multiple computers, but in multiple locations, and disconnected from our networks. To help solve this problem, we need effective strategies for replication of user data and files.

csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses uses widely adopted protocols like smb or sftp so that there is no need for a server component of csync. It is a user-level program which means there is no need to be a superuser. With pam_csync it is possible to create roaming home directories.

For more on using csync, see the user guide. Please report bugs using the bugtracker. For more information on csync, or to get involved with development, see the csync Web site and join the devel lists or find help in IRC.

Both comments and pings are currently closed.

21 Responses to “openSUSE Project Announces csync”

  1. math

    Hi,

    what precisely is the difference between csync and other tools, like unison? I have been using unison for many years now and found that it works flawlessly, and with utmost reliability.

    Best,

    Stefan.

  2. George Pantazis

    The proper link for the ymp for openSUSE 11.1 is
    http://software.opensuse.org/ymp/network:synchronization:files/openSUSE_11.1/csync.ymp

  3. csync is a bidirectional file synchronizer like unison. csync is written in C and not in ocaml. So it can be used by PAM (pam_csync) or you can write a GUI for it (this is a future plan). csync is a client only file synchronizer and doesn’t need a daemon running on the other system. Unison needs to be installed and running on both systems.

  4. gsc

    I assuume that by the term ‘sftp’, ftp over SSH is meant?
    If so, why not using rsync over ssh instead of sftp or as an extra option?
    Rsync is a bit more intelligent and particularly for slow or relative slow connections (wireless ie.) a plus.

    I submitted a requested feature via bugs.kde.org to the developers of Dolphin to integrate this with a simular motivation.
    http://bugs.kde.org/show_bug.cgi?id=175845

    Maybe this could be an opportunity to involve some developers of KDE to come to a more general and wider applicable solution?

  5. Yes, sftp means secure shell ftp. FTP with SSL is ftps.

    Well, rsync over ssh means that your local rsync talks to rsync on the server side over ssh. So csync has to talk with the rsync daemon. I haven’t looked at it yet. It could be possible to write a plugin for csync to talk to rsync over ssh or the rsync daemon directly. I don’t know if it provides posix like function. See the smb or sftp module.

    I’m currently working on improving libssh so the next version of csync will be much faster with sftp.

  6. countd_

    This looks very interesting indeed. Two major issues that would prevent me from trying it in earnest right away:

    1. No conflict resolution (yet). This scares the cr*p out of me. I don’t want the program to make important decisions like this without asking me. Often an older revision of a document will still contain information that we want to retain – simply overwriting on the strength of the timestamp is insufficient. It is inferred by the docs that this is planned for the future, for now however, I simply cannot use this on my important data.
    2. Seemingly, no verbose mode. Being able to see what it is the program is doing without digging under the hood will surely speed adoption.

    Also, how will it deal with binary files? For example, an mp3 that has had its id3 tags updated may be suitable for a simple overwrite, a local database file that has had writes to both copies prior to syncing would not suit an overwrite at all.

    Difficult stuff, and I appreciate you trying to solve it for us!

    • Hello,

      thanks for you comments. For 1. you need user interactions this means a GUI or a yes/no adventure on the console. This is planned for the future. This releases focuses on the Roaming Home Directory part.

      For 2. there is a more verbose mode. I should describe it in the userguide. You have to edit ~/.csync/csync_log.conf and set ‘csync.reconciler’ to ‘debug’. Then you can see all decisions which it makes.

      If you change the id3tag of a mp3 file, then the whole file will be transferred. There is no use of the rsync algorithm in csync yet.

  7. Peter

    Isn’t this more or less the same thing has Novell’s iFolder???

  8. Kate

    I find it a bad sign for the cluefulness of the csync developers that their flat-layout table of contents requires Javascript. It’s going to fail with a lot of screen readers, they’re not gaining anything in terms of maintenance since they’re having to maintain class ids instead of just anchors and it makes bookmarking individual sections impossible without turning Javascript on. Documentation, good, documentation that shows you can’t think logically enough about what you’re doing to realize that you’re trying to bake a candy-flake enamel coating onto a bikeshed? Not such a good thing.

    • Do you talk about the userguide? The userguide is generated with asciidoc. You write simple text and it creates xhtml, pdf etc.

      I’m a C developer, not a webdeveloper :) I think csync is more important than the javascript code of a webpage. But you’re welcome to improve the userguide or create a better website.

      Best regards,

      — andreas

  9. MCosta

    Hi,
    I installed csync + pam_csync but the man file pam_csync.8.gz went to wrong place – /usr/share/man/man7 instead the right place /usr/share/man/man8.

    Did I do something wrong?

  10. Grzegorz Kossakowski

    I’m wondering what are limitations of this tool and possible use cases. As someone already mentioned there is an unison tool which is very good and reliable software. The only drawback that really annoys me is its gui which really sucks. For example, establishing ignore rules is a joke as there is no gui support for pattern-base rules.

    I don’t want to critique someone’s effort but I’m wondering if it wouldn’t be better to just implement a decent GUI on top of existing unison backend. I can’t believe there is no way to call ocaml code from C.

    Currently I’m using unison for synchronizing my laptop and desktop computers (my home folder to be precise). Here are some statistics:
    grek@linux-p3yg:~> du -sh ~
    49G /home/grek
    grek@linux-p3yg:~> find ~ | wc -l
    398913

    This is quite a lot right? Unison handles this in 10 minutes provided there were not too much files changed. Unison uses very smart algorithm for transferring differences so it works quite well even over wifi. Of course I should mention that I have fast hard disks (especially on desktop) but still these 10 minutes is a really good result IMHO.

    I guess that csync is meant to allow me to synchronize home directories in setup like above. What would be a performance of csync? Is csync based on some papers so I can be sure that running a tool that wants to deal with all of my data is *safe*?

    Again, I don’t want to dismiss anyone’s work but I know that file synchronization in an efficient and safe way is not a piece of cake especially written in C and I wonder if it’s not better to focus on higher-level functionality like providing a really good GUI.

  11. jramskov

    Another option is dropbox: http://getdropbox.com/

    • jramskov

      Forgot: There’s no rpm available for OpenSuse though :(

      Also, the Linux implementation is for Nautilus, would be cool if there was one for Dolphin/Konqueror.

  12. May I infer that the next release of SLED will automagically handle Roaming Profiles in an ActiveDirectory environment?

  13. Birger

    This looks very interesting. I have been looking at different solutions for a long time and only iFolder has looked reasonably good. But… iFolder seems like a dead project.

    How will csync react to files being updated from several loations? If a user has two machines loged on with the same userid, there is a possibility for interesting events :-)

    cu