
|
|
This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. (September 2007) |
File synchronization (or 'synching' or 'syncing') in computing is the process of making sure that two or more locations contain the same up-to-date files. If you add, change, or delete a file from one location, the synchronization process will add, change, or delete the same file at the other location.
File synchronization may be one-way or two-way. In a one-way sync, also called mirroring, files are copied only from a 'source' location to a 'target' location, or locations, but no files are copied back to the source location. In two-way sync, files are copied in both directions, keeping the two locations in sync with each other. The term synchronization is used in this article to mean exclusively two-way synchronization, in contrast with 'mirroring'.
File synchronization maintains the same version of files on multiple locations, normally directories on a computer or removable storage devices such as USB flash drives. In other words, when two locations are synchronized, the most current version of a file is available at both locations, regardless of where it was last modified. File synchronization is useful for mobile workers, or others that work on multiple computers.
It can also be used for backup purposes, although it is not ideal for this.
Although it is possible to synchronize directories manually, using a software tool is both faster and less error prone.
Contents |
File synchronization tools are similar to Version Control tools (CVS, Subversion, etc.), distributed filesystems (Coda, etc.), and mirroring utilities (rsync, etc.), in that all these attempt to keep sets of files synchronized. However, only version control and file synchronization tools can deal with modifications to more than one copy of the files.
Version control tools are intended to deal with situations where more than one person wants to simultaneously modify the same file, while file synchronizers are optimized for situations where only one copy of the file will be edited at a time. For this reason, although version control tools can be used for file synchronization, dedicated programs require less overhead.
Distributed filesystems may also be seen as ensuring multiple versions of a file are synchronized. Unlike file synchronization, this is transparent to the user, and normally requires that the devices the files are stored on are always connected.
Advanced file synchronizers will compare the differences between the two locations and synchronize only the file differences, rather than re-copying the entire file. In cases where one location is remote, this requires a software agent, a server, to be installed on the remote computer. A good sync program will also allow encryption for security, particularly when synchronizing across the Internet.
Other advanced features include:
It is possible to synchronize multiple locations by synchronizing them a pair at a time.
There are a very large number of file synchronization programs available, either as open source, freeware (closed-source), or commercial licenses.
Here is an incomplete list of file synchronization programs:
| name | protocol | language | platforms | license | Lastest Version (as of Oct 2008) |
|---|---|---|---|---|---|
| Unison | similar to rsync; uses SSH as transport | OCaml | Windows, Linux, OS X, other Unix | GPL | 2.27.57 [20-Jan-2008] |
| JFileSync | file system | Java | Windows, Linux, OS X, other Unix | GPL | 2.2 [20-Jul-2007] |
| FreeFileSync | file system | C++ | Windows, Linux | GPL | 1.9 [25-Oct-2008] |
| WinSCP | (Secure) FTP | C++ | Windows | GPL | |
| PathSync | file system | C++ | Windows | GPL | |
| rsync | rsync | Unix | GPL | ||
| DirSync Pro | file system | Java | Windows, Linux, Mac OS X | GPL | 1.0b6 [2-Oct-2008] |
| FullSync | file system or FTP | Java | Windows | GPL2 | 0.9.1 [8-Mar-2005] |
| Conduit (generic framework) | Many | Python | Linux, Unix | GPL |
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History