pirsyncd is a daemon to watch a directory for kernel’s inotify events and then execute an rsync command to synchronize two different directories (local or remote).
This is a poor man’s mirroring or an alternative (not so) real data replication mechanism and it is based on Pyinotify.
pirsyncd monitors for these inotify events:
* IN_ATTRIB
* IN_CLOSE_WRITE
* IN_CREATE
* IN_DELETE
* IN_MODIFY
* IN_MOVED_TO
* IN_MOVED_FROM
* IN_DELETE_SELF
Product's homepage
Here are some key features of "pirsyncd":
· There is no need of installation!
· Run as a Daemon
· Can run as a Daemon in foreground
· Simple Configuration, you only have to configure your source and destination directories
· Configuration Check at the begging
· Ability to check and stop the daemon
· Syntax help with ––help
· For every parameter there is a usage examples with ––examples
· Support multiple running instances
· Mirroring to a remote (destination) server (needs password-less connection) through ssh connection
· Mirroring to a remote (destination) server (needs rsync password-file) through rsync connection
· Error handling via exceptions
· A customized delay for mirroring directories (dont rsync asap when an event is trigged)
· Gets arguments from command line - there is no need of hack the code.
· Synchronization at start (mirroring via rsync) - first run
· Definition of rsync version from command line
· Logging functionality of rsync process
· Partial rsync functionality
· Append rsync functionality
· Functionality to exclude files larger than MAX-SIZE or smaller than MIN-SIZE
· Debugging pyinotify events
· Debugging rsync command
· Autolearning new subdirectories
· Resolving duplicates inode events for multiple files/events
· You can rsync every n (NUMBER) inode events (simple delay method)
· Supports python3 with PIrsyncD.v3
· Clean code and python code styling using pylint
· 7.35 with pylint (previous 7.21) !
· Lines of code (has a lot of comments !) and it is written on KISS principle
Requirements:
· Python
· rsync
What's New in This Release: [ read full changelog ]
· Note that this is the last version in Python 2.
· The next version will be only in Python 3.
· Pyinotify.py has been updated to 0.9.1 (20110405).
· An SSH port parameter for synchronization of SSH has been added.
· The trailing slash (/) requirement for source and destination path has been removed.
· Pyinotify.py version 3 for pirsyncd.Py3k has been added.