Updated readme file

pull/93/head
deajan 8 years ago
parent 3e9e560cfd
commit 535f8ccb1f

@ -1,34 +1,35 @@
# osync [![Build Status](https://travis-ci.org/deajan/osync.svg?branch=master)](https://travis-ci.org/deajan/osync) [![GitHub Release](https://img.shields.io/github/release/deajan/osync.svg?label=Latest)](https://github.com/deajan/osync/releases/latest)
A two way filesync script with fault tolerance, resume, soft deletion, conflictual file backups running on bash (linux, BSD and virtually any system supporting bash).
A two way filesync script running on bash Llinux, BSD, Android, MacOSX, Cygwin, MSYS2, Win10 bash and virtually any system supporting bash).
File synchronization is bidirectional, and can be run manually, as scheduled task, or triggered on file changes in deamon mode.
It is a command line tool rsync wrapper with a lot of additional features baked in.
About
-----
osync provides the following capabilities
- Local-Local and Local-Remote sync
- Fault tolerance with resume scenarios
- File ACL and extended attributes synchronization
- Full script Time control
- Soft deletions and multiple backups handling
- Before / after run command execution
- Email alerts
- Logging facility
- Soft deletition and multiple backups handling
- Before / after command execution
- Time control
- Directory monitoring
- Running on schedule or as daemon
- Batch runner for multiple sync tasks with rerun option for failed sync tasks
- ACL synchronization
osync is a stateful synchronizer. This means that it doesn't have to monitor files for changes. Instead, it compares replica file lists between two runs.
A full run takes about 2 seconds on a local-local replication and about 10 seconds on a local-remote replication.
osync is a stateful synchronizer. This means it's agentless and doesn't have to monitor files for changes. Instead, it compares replica file lists between two runs.
A full run takes about 2 seconds on a local-local replication and about 7 seconds on a local-remote replication.
Disabling some features file like attributes preservation and disk space checks may speed up execution.
osync uses a initiator / target sync schema. It can sync local to local or local to remote directories. By definition, initiator replica is always a local directory on the system osync runs on.
osync uses pidlocks to prevent multiple concurrent sync processes on/to the same initiator / target replica.
You may launch concurrent sync processes on the same system but as long as the replicas to synchronize are different.
Multiple osync tasks may be launched sequentially by osync osync-batch tool.
Currently, it has been tested on CentOS 5.x, 6.x, 7.x, Fedora 22-24, Debian 6-7, Linux Mint 14-18, Ubuntu 12.04-12.10, FreeBSD 8.3-10.3, Mac OS X and pfSense 2.3x.
Microsoft Windows is supported via MSYS or Cygwin.
Currently, it has been tested on CentOS 5.x, 6.x, 7.x, Fedora 22-25, Debian 6-8, Linux Mint 14-18, Ubuntu 12.04-12.10, FreeBSD 8.3-11, Mac OS X and pfSense 2.3x.
Microsoft Windows is supported via MSYS or Cygwin and now via Windows 10 bash.
Android support works via busybox (tested on Termux).
Installation
@ -42,7 +43,7 @@ You may also get the last development version at https://github.com/deajan/osync
$ git clone https://github.com/deajan/osync
$ cd osync
$ sh install.sh
$ bash install.sh
osync will install itself to /usr/local/bin and an example configuration file will be installed to /etc/osync
@ -154,12 +155,19 @@ Systemd specific (one service per config file)
Contributions
-------------
Bug fixes and ideas are welcome. When submitting a PR, please be sure to modify files in dev directory (dev/n_osync.sh, dev/ofunctions.sh, dev/common_install.sh etc) instead of osync.sh and others which are autogenerated.
Consider reading CODING_STYLE.TXT before submitting a patch.
All kind of contribs are welcome.
When submitting a PR, please be sure to modify files in dev directory (dev/n_osync.sh, dev/ofunctions.sh, dev/common_install.sh etc) as most of the main files are generated via merge.sh.
When testing your contribs, generate files via merge.sh or use bootstrap.sh which generates a temporary version of n_osync.sh with all includes.
Unit tests are run by travis on every PR, but you may also run them manually which adds some tests that travis can't do, via dev/tests/run_tests.sh
SSH port can be changed on the fly via environment variable SSH_PORT, eg: SSH_PORT=2222 dev/tests/run_tests.sh
Consider reading CODING_CONVENTION.TXT before submitting a patch.
Troubleshooting
---------------
You may find osync's logs in /var/log/osync.*.log (or current directory if /var/log is not writable).
You may find osync's logs in /var/log/osync.[INSTANCE_ID].log (or current directory if /var/log is not writable).
Additionnaly, you can use the --verbose flag see to what actions are going on.
Author

Loading…
Cancel
Save