What is this?

csync is a file synchronizer especially designed for you, the normal user.

To be more precise csync is a client only bidirectional file synchronizer. You can use csync for different things. The intention is to provide Roaming Home Directories for Linux but you can use it to synchronize your music collection or create a backup of a directory.

csync is a library and ships commandline client by default.

News

csync 0.42.0 rc2

This is the second and hopefully the last release candidate of csync 0.42.0.
csync is a bidirectional file synchronizer for Linux and allows to keep two
copies of files and directories in sync. It uses uses widly 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.

The first release candidate hasn’t been released to the public cause of a bug
in the state database. This has been fixed now. The userguide is available too.

Packages are available in the download section. Please report bugs to the bugtracker.

ChangeLog

  • Reduced syscalls
  • Fixed a bug in the state database
  • Fixed libsmbclient support
  • Completed userguide

NOTE: sftp is still really slow. This will be fixed with the next libssh version and I will release a new csync version which works with libssh 0.2.1.

pam_csync 0.42.0 beta2

This is the second beta release of csync 0.42.0. pam_csync is a PAM (Pluggable
Authentication Modules) module to provide roaming home directories for a
user session. This module is aimed at environments with central file servers a
user wishes to store his home directory. The Authentication Module verifies the
identity of a user and triggers a synchronization with the server on the first
login and the last logout.

There is a bug in several PAM applications calling the PAM functions on logout
in the wrong order. Take a look at:

gdm calls pam functions in the wrong order
http://bugzilla.gnome.org/show_bug.cgi?id=557794

OpenSSH calls pam functions in the wrong order on logout
https://bugzilla.mindrot.org/show_bug.cgi?id=1534

If you have ‘su’ (switch user) with pam support, check the patch
if it calls the functions in the right order.

You can find packages here.

ChangeLog

  • Improved debugging output
  • Fixed some PAM problems introduce by buggy gdm, su, openssh
  • Fixed kerberos support
  • Code cleanups

NOTE: If you want to use csync with sftp. Compile the latest libssh version from svn and apply this patch to the csync source.

csync and pam_csync 0.42.0 beta1

This is the first beta release of csync 0.42.0. csync is a bidirectional file synchronizer for Linux and allows to keep two copies of files and directories in sync. It uses uses widly 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.

This version fixes several bugs to increase the stability of the file synchronizer. It provides a new plugin to synchronize two replicas with the sftp protocol. To get the csync sftp plugin working you need libssh 0.2 with the following two patches:

Map permission fields
Errno mapping

Packages

Source: csync-0.41.95.tar.gz (140 KB)
md5sum: csync-0.41.95.tar.gz.md5

Source: pam_csync-0.41.93.tar.gz (28 KB)
md5sum: pam_csync-0.41.93.tar.gz.md5

Packages for Fedora 9, openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

ChangeLog

csync

libcsync

  • Added a sftp module using libssh
  • Added user guide (just a start)
  • Added testcase for update detection
  • Added a function to parse an uri to cstdlib
  • Updated the manpage
  • Fixed some segfaults in cstdlib
  • Fixed some memory leaks

csync

  • Improved the auth callback

pam_csync

  • Fixed return codes of the forked child process
  • Code cleanups

pam_csync 0.42.0 alpha1

This is the first alpha release of csync 0.42.0. pam_csync is a PAM (Pluggable Authentication Modules) module to provide roaming home directories for a user session. This module is aimed at environments with central file servers a user wishes to store his home directory. The Authentication Module verifies the identity of a user and triggers a synchronization with the server on the first login and the last logout.

Packages

Source: pam_csync-0.41.91.tar.gz (26 KB)
md5sum: pam_csync-0.41.94.tar.gz.md5

Packages for Fedora 9, openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

csync 0.42.0 alpha4

This is the fourth alpha release of csync 0.42.0. The next version will be beta1. This is *not* intended for production environments. With this version you can sync two local directories or a local directory with a samba share. Please report any defects via the bug reporting system at https://dev.csync.org/.

Changelog

  • Added the possibility to run csync completely without a journal
  • Added a manpage for the commandline client
  • Improved chmod calls during propagation. Most of the time we use the default mode and don’t need to call chmod.
  • Improved the exclude list handling in the file tree walker. This increased the speed of the update detection.
  • Fixed csync on PPC
  • Fixed serveral small bugs

Packages

Source: csync-0.41.94.tar.gz (97 KB)
md5sum: csync-0.41.94.tar.gz.md5

Packages for Fedora 9, openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

csync 0.42.0 alpha3

This is the third alpha release of csync 0.42.0. This is *not* intended for production environments and is designed for testing purposes only. This version is fully functional and you can sync two local directories or a local directory with a samba share. Please report any defects via the bug reporting system at https://dev.csync.org/.

Changelog

  • Added a tree merger to write a complete journal
  • Added support to run csync without a journal
  • Fixed kerberos support in csync_smb module
  • Fixed closing of files after the copy
  • Fixed update detection to detect special files (fifo, pipes, char devices, ..)
  • Fixed O_NOATIME flag on open() if we don’t have the permission

Packages

Source: csync-0.41.93.tar.gz (89 KB)
md5sum: csync-0.41.93.tar.gz.md5

Packages for Fedora 9, openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

csync 0.42.0 alpha2

This is the second alpha release of csync 0.42.0. This is *not* intended for production environments and is designed for testing purposes only. This version is fully functional and you can sync two local directories or a local directory with a samba share. Please report any defects via the bug reporting system at https://dev.csync.org/.

Changelog

  • Performance improvement
  • Several bugfixes

Packages

Source: csync-0.41.92.tar.gz (89 KB)
md5sum: csync-0.41.92.tar.gz.md5

Packages for Fedora 9, openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

csync 0.42.0 alpha1

This is the first alpha version of csync 0.42.0. This is *not* intended for production environments and is designed for testing purposes only. This version is fully functional and you can sync two local directories or a local directory with a samba share. Please report any defects via the bug reporting system at https://dev.csync.org/.

The source can be downloaded here.

Packages for openSUSE and SUSE Linux Enterprise 10 can be downloaded here.

csync 0.42.0 prealpha test version

This is the first release of csync. It is just for testing purposes to collect some information. It doesn’t synchronize any data yet. Currently only the update detection and the creation of a journal is working. The intention is to get some testing and feedback about these processes. It does not change or copy any files. It is save to run it.

If you want to test csync:

csync -j /home/<user> /tmp

This will run the update detection and create the journal. You can enable some debug output if you edit ~/.csync/csync_log.conf and set csync.api to debug and csync.util to info. If you want to know that happens during the update detection set csync.updater to debug.

Run

csync /home/<user> /tmp

Source: tar.gz | md5
RPM: openSUSE

csync source code is online

The source code of csync is now available via git [1]. This is a rewrite of the first version which is just the prototype of the file synchronizer. The current version is in an early state. Currently the function to init csync is being developed. The next steps on the TODO list are:

  • Finish the journal functions
  • Load the configuration
  • Load the exclude list
  • Create a virtual IO layer for the plugin system, so that you can write plugins with libsmbclient or libssh.

Currently most of the base has been implemented. The data structures for the collected file information will be stored in a red-black tree. For the journal a sqlite3 database will be used. The key to identify a file/path will be a 32bit jhash of the filename.

If you want to participate in the development, you should subscribe to the mailing lists [2] and take a look at the prototype [3]. The instruction how to compile csync and to work with the testing framework can be found in the trac system [4].

[1] git clone git://git.csync.org/csync.git
[2] http://www.csync.org/communication/
[3] git clone git://git.csync.org/csync-prototype.git
[4] https://dev.csync.org/