parsley

a modular python-based file synchronization tool
current release: 3.2.2512
state: production-stable
parsley

About

Parsley keeps a configured set of places in file systems in sync.

Features:

  • Keeps configured file system places in sync (local and ssh)
  • Robust infrastructure with working retry and error handling
  • Customizable behavior with the availability to add additional program logic for various situations
  • Optional 'move to sink mode': always moves all files from the source to a sink and so keep the source empty
  • Has a mechanism for metadata synchronization (tags, rating, ...)
  • Can be used stand-alone or embedded in other tools with a flexible and extensible api
  • Rich graphical interface for configuration and for executing synchronization
  • Graphical interface for manually resolving conflicts which occurred in a synchronization run
  • Designed for being driven by a scheduled task (a.k.a. cronjob), which executes a background command (e.g. each minute)
  • In background mode: Own handling of synchronization intervals (independent of the interval for the scheduled task)

License

parsley is distributed under the terms of the GPLv3 or higher license. This also affects all included files without a license header (non-source files like images), unless they are explicitly mentioned as third-party content. Read the Dependencies section for included third-party stuff.

Documentation

The following documentation is available:

Manual

Developer Documentation

Download

The following packages are available. Choose the one which matches your operating system or environment. Please also check for requirements.

Debian/Ubuntu package

sha256sum: 8cc0e5ca52ccf495871a7ad67223e1a255aee578c09f94bdabba607889d2e633
created: 2019-08-17 12:43        size: 1.1 MB
sha256sum: b669d69679859a48a2b50e01bbaaa786f33463400d9a385d87fac235f5648a4b
created: 2016-09-29 21:36        size: 2.1 MB
sha256sum: fc1d7755e17c7b70796b0bacc80ccd3c7867913759c65d16fe94d2f3076a1e94
created: 2015-10-03 19:43        size: 1.2 MB
 

Python wheel package

sha256sum: bfb219e54956e06258e565d7f47f676fd54b15f62149111ea1a741eb2e47c579
created: 2019-08-17 12:43        size: 291.5 KB
sha256sum: 5005dd6b66c373dbb2b42f506fd97e37b3d49c2fc29775778c053654bdd215e8
created: 2016-09-29 21:36        size: 163.2 KB
sha256sum: a133104229df5555ec48ed5cf47772493f88c06e3938371af2f99ba874f74648
created: 2015-10-03 19:43        size: 141.0 KB
 

Windows package

sha256sum: 20dfb9ac4407d94ba16dd3736d423ba5377a7fe76bc32110f91414c8e39de38a
created: 2019-08-17 12:43        size: 5.3 MB
sha256sum: 3de589215eefdde4107114ba8879623cc61471419efeaacf1d41ffdf21765ebb
created: 2016-09-29 21:36        size: 5.7 MB
sha256sum: 5d871b271f088436ecf5e6cc1fe39650ef13ca0750768e68ed48b5f0251baeb2
created: 2015-10-03 19:43        size: 2.3 MB
 

flatpak

Install parsley as Flatpak on most modern Linux systems by installing application 'pi.no.parsley' from repository 'https://pseudopolis.eu/wiki/pino/projs/parsley/flatpak'.
archlinux.png
Install $ sudo pacman -S flatpak before you can use Flatpak in Arch Linux.
centos.png
Install $ yum install flatpak as root before you can use Flatpak in CentOS.
debian.png
Install $ apt install flatpak as root before you can use Flatpak in Debian.
fedora.png
Flatpak is directly usable in Fedora without further work.
gentoo.png
Install https://github.com/fosero/flatpak-overlay before you can use Flatpak in Gentoo.
opensuse.png
Install $ sudo zypper install flatpak before you can use Flatpak in openSUSE.
redhat.png
Install $ yum install flatpak as root before you can use Flatpak in Red Hat.
ubuntu.png
Install $ sudo apt install flatpak before you can use Flatpak in Ubuntu.

See above how to prepare Flatpak and then run:

$ flatpak remote-add --user --no-gpg-verify parsley https://pseudopolis.eu/wiki/pino/projs/parsley/flatpak
$ flatpak install --user parsley pi.no.parsley
$ flatpak run pi.no.parsley
or install it with just:
$ flatpak install --user --from https://pseudopolis.eu/wiki/pino/projs/parsley/parsley.flatpakref

parsley.flatpakref

sha256sum: 6a423215763d438958b66325eda6532238e1fe2ae62eb0e032532ae6308e1c7e
created: 2019-01-24 21:46        size: 2.4 KB
 
Use the .gpg for optional repository signature verification.

parsley_flatpak.gpg

sha256sum: 0a40600de0f79c9cc2f528d7a77bf9b9eb15723efaf1c3740ec81d8dccd2671f
created: 2019-01-24 21:46        size: 1.6 KB
 

source tarball

sha256sum: 1d22bd2aa9a81d6290ee2c9725e34c20bdc9df6b81fa2a1eb50e1283c7e6e4e9
created: 2019-01-24 21:46        size: 5.1 MB
sha256sum: b55413b9ea78601a657f2d5e47dd6a86706e15895848134affe6ff5af2c84ae8
created: 2016-09-29 21:36        size: 5.5 MB
sha256sum: 9e36c1dc591b3c26886aa058e26cfed76a8ae705adddf6971a048dc19fd57c36
created: 2015-10-03 19:43        size: 2.1 MB
 

There are external parts which are used by parsley. Many thanks to the projects and all participants.
python.png
Python 3.4 required
linux.png
Typical GNU/Linux Desktop recommended
package.png
PyQt5 incl. WebEngine required (has alternatives) : for some user interface enhancements; you can comfortably work without it (inside the browser then)
ssh.png
sshfs optional
package.png
python3-pyxattr optional
artwork.png
font 'Symbola' included : for logo symbol; free for use; copied from here.
artwork.png
banner image included : _meta/homepage_bannerimage.png; license CC BY-SA 3.0; copied from here.
artwork.png
all files in /_meta included : if not mentioned otherwise, Copyright 2015 Josef Hahn under license CC BY-SA 3.0 license.

Gallery

screenshot1.png
The Parsley overview window with a synchronization task added
screenshot2.png
Executing a synchronization task in foreground
screenshot3.png
Detail configuration for a synchronization task
screenshot4.png
The synchronization history log
screenshot5.png
Manually solving file conflicts
gallery0/v_parsley001.mp4|||Screencast: First steps
gallery0/v_parsley002.mp4|||Screencast: Custom aspects
gallery0/v_parsley003.mp4|||Screencast: High level customization
gallery0/v_parsley004.mp4|||Screencast: Windows

Change Log

The last changes brought the following improvements.

2017-03-14 (3.2.1729)
  • The new report feature shows performance data and logging information for sync tasks.
  • A new, web-based user interface replaces the old, Tk-based one.
  • New feature for fine-grained time measurement of sync runs.
  • Dropped some exotic functionality (like repeated task execution).
  • Refactored many internal structures and clarified large parts of the programming interfaces.

Imprint

Publisher: Josef Hahn, Boxgraben 112-114, 52064 Aachen, Germany | website: pseudopolis.eu/wiki/pino | mail: parsl.nosp@m.ey@p.nosp@m.seudo.nosp@m.poli.nosp@m.s.eu

Feedback

If you have funny rants about parsley itself or about some techniques it uses, some constructive feedback, a cool patch or a mysterious problem, feel free to mail it to parsl.nosp@m.ey@p.nosp@m.seudo.nosp@m.poli.nosp@m.s.eu.

Please use the bugtracker if you have found an error in the software.