pirsyncd 20110412

Python Inotify Rsync Daemon
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:


Main features:

  • 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

last updated on:
April 13th, 2011, 9:22 GMT
developed by:
Evaggelos Balaskas
license type:
GPL (GNU General Public License) 
ROOT \ System \ Monitoring


In a hurry? Add it to your Download Basket!

user rating



What's New in This Release:
  • 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.
read full changelog

Add your review!