Yet Another Rsync is a file synchronization and backup tool. It can be used to synchronize data between different hosts or locally (for example, to a backup drive). It provides a familiar git command interface while working with files.
YARsync is a Free Software project covered by the GNU General Public License version 3.
For Arch Linux, install the yarsync package from AUR. Packages for other distributions are welcome.
For an installation from PyPI, run
pip install yarsync
Since there is no general way to install a manual page for a Python package, one has to do it manually. For example, run as a superuser:
wget https://github.com/ynikitenko/yarsync/blob/master/docs/yarsync.1.gz -P /usr/share/man/man1/
mandb
Make sure that the manual path for your system is correct. The command mandb updates the index caches of manual pages.
One can also install the most recent program version from GitHub. It incorporates latest improvements, but at the same time is less stable (new features can be changed or removed).
git clone https://github.com/ynikitenko/yarsync.git
pip install -e yarsync
This installs the yarsync executable to ~/.local/bin, and does not require modifications of PYTHONPATH. After that, one can pull the repository updates without reinstallation.
To uninstall, run
pip uninstall yarsync
and remove the cloned repository.
yarsync can be used to manage hierarchies of unchanging files, such as music, books, articles, photographs, etc. Its final goal is to have the same state of files across different computers. It also allows to store backup copies of data and easily copy, update or recover that. yarsync is
checkout clone commit diff init log pull push remote show status
See yarsync --help for full command descriptions and options.
yarsync is a Python wrapper around rsync and requires a file system with hard links. Since these are very common tools, this means that it can easily run on any UNIX-like system. Moreover, yarsync is not required to be installed on the remote host: it is sufficient for rsync to be installed there.
In particular, rsync can be found:
yarsync runs successfully on Linux. Please report to us if you have problems (or success) running it on your system.
yarsync has been used by the author for several years without problems and is tested. However, any data synchronization may lead to data loss, and it is recommended to have several data copies and always do a --dry-run (-n) first before the actual transfer.
For the complete documentation, read the installed manual or GitHub Pages.
For more in-depth topics or alternatives, see details.
An article in Russian that deals more with yarsync internals was posted on Habr.
A good number of people have contributed to the improvement of this software. I'd like to express my thanks to Mikhail Zelenyy from MIPT NPM for the explanation of Python entry points, Jason Ryan and Matthew T Hoare for the inspiration to create a package for Arch, Scimmia for a comprehensive review and suggestions for my PKGBUILD, Open Data Russia chat for discussions about backup safety, Habr users and editors, and, finally, to the creators and developers of git and rsync.