Introduction

collective.recipe.rsync is a zc.buildout recipe that copies files between two locations via the rsync program.

Note

collective.recipe.rsync assumes you have a UNIX-based operating system and the rsync binary is in your PATH when you run Buildout or the rsync script.

Installation

Add a new section to your buildout.cfg file to use the collective.recipe.rsync recipe, e.g.:

[buildout]
extends = https://raw.github.com/plock/pins/master/plone-4-3
parts += backup

[backup]
recipe = collective.recipe.rsync
source = ${buildout:directory}/var/filestorage/Data.fs
target = /var/backup

This copies a Plone Data.fs file from the source to the target.

Create a script

Normally collective.recipe.rsync will run rsync during the recipe installation. Optionally you can create a script to execute rsync later by configuring the script = true option:

[backup]
recipe = collective.recipe.rsync
source = ${buildout:directory}/var/filestorage/Data.fs
target = /var/backup
script = true

This is useful in cases where you want to automate an rsync script with cron e.g. via z3c.recipe.usercrontab.

Configure options

The default options are -av --partial --progress. Use the options parameter to change them e.g.:

[backup]
recipe = collective.recipe.rsync
source = ${buildout:directory}/var/filestorage/Data.fs
target = /var/backup
# Omit "-v" option
options = -a --partial --progress

Exclude files

You can exclude files with the exclude option e.g.:

[backup]
recipe = collective.recipe.rsync
source = ${buildout:directory}/var/filestorage/Data.fs
target = /var/backup
exclude = Data.fs.index Data.fs.old

Specify alternate SSH port

Optionally you may specify an alternate SSH port for rsync to use e.g.:

[backup]
recipe = collective.recipe.rsync
source = ${buildout:directory}/var/filestorage/Data.fs
target = /var/backup
port = 2222

This copies a Data.fs file from remotehost to var/filestorage/Data.fs using port 2222.

Changelog

2.2.0 (unreleased)

  • Add ignore support [aclark]
  • None have quote around when script option is use and port is not in used #3 [bsuttor]

2.1.0 (2012-04-09)

  • Clean up package [aclark]

2.0.0 (2011-05-24)

  • Don't prefix scripts with "rsync-"

1.9 (2011-04-12)

  • Call install on update
  • UI tweaks

1.8 (2011-03-29)

  • Switched to using subprocess to call rsync (to show progress to stdout) [mattss]
  • Replace print statements with logger [aclark]
  • Update docs

1.7 (2011-01-21)

  • Doc fixes
  • Make script name based on section name
    • Support more than one script in the same buildout

1.6 (2011-01-20)

  • Add script option
    • Generates bin/rsync script
    • Disables rsync during buildout execution
    • Facilitates creation of scheduled rsyncs via cron

1.5 (2011-01-10)

  • Doc fixes
    • Add a note about UNIX compat only

1.4 (2011-01-10)

  • Support alternate ssh port parameter in recipe section. This allows collective.recipe.rsync to execute rsync with: -e 'ssh <port>', which facilitates copying over non-standard ssh ports.

1.3 (2010-12-19)

  • Fix docs

1.2 (2010-12-19)

  • Fix docs
  • Add new test harness
  • Clean up package

1.1 (2010-11-05)

  • Modified output to include rsync command line being executed

1.0 (2010-02-28)

  • Rename package from collective.recipe.rsync_datafs to collective.recipe.rsync

0.1 (2009-08-26)

  • Created recipe with ZopeSkel