skip to navigation
skip to content

collective.recipe.rsync 2.0.0

A zc.buildout recipe to copy files from one location to another via rsync

Downloads ↓

Latest Version: 2.1.0

Introduction

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

It was originally created to make it easy to copy a Data.fs file between two Plone application environments e.g. from production to development, but you can use it to copy anything; e.g. ZODB blob files, and so on.

Note

collective.recipe.rsync currently assumes you have a UNIX-based operating system and that the rsync binary is in your path when you execute buildout or the rsync script. Windows testers are welcome.

Installation

Add a section to your buildout.cfg file, e.g. data:

[buildout]
parts =
    ...
    data

[data]
recipe = collective.recipe.rsync
source = myhost.com:/path/to/Data.fs
target = var/filestorage/Data.fs

This copies a Data.fs file from myhost.com to ./var/filestorage/Data.fs.

Specify alternate SSH port

Optionally, you may specify an alternate SSH port for rsync to use:

[data]
recipe = collective.recipe.rsync
source = myhost.com:/path/to/Data.fs
target = var/filestorage/Data.fs
port = 22001

This copies a Data.fs file from myhost.com to ./var/filestorage/Data.fs over port 22001.

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:

[data]
recipe = collective.recipe.rsync
source = myhost.com:/path/to/Data.fs
target = var/filestorage/Data.fs
script = true

This is useful in cases where you want to automate an rsync process with cron e.g. via http://pypi.python.org/pypi/z3c.recipe.usercrontab.

Example

Here is a real life example. This is one of the ways in which the author uses collective.recipe.rsync:

# Create scripts to deploy staging data to production.
# Be VERY careful with this. You could easily overwrite your
# live production data if you either forget to use the script
# option, or accidentally run the bin/rsync-filestorage-to-production
# script without stopping the production site first.
[filestorage-to-production]
recipe = collective.recipe.rsync
source = var/filestorage/Data.fs
target = ../aclark_net_website/var/filestorage/Data.fs
script = true

[blobstorage-to-production]
recipe = collective.recipe.rsync
source = var/blobstorage/
target = ../aclark_net_website/var/blobstorage/
script = true

As the warning suggests, you should be careful with this. The author uses this particular configuration to deploy a staging site to production.

Contact

Questions/comments/concerns? E-mail: aclark@aclark.net.

Changelog

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
 
File Type Py Version Uploaded on Size # downloads
collective.recipe.rsync-2.0.0.zip (md5) Source 2011-05-24 15KB 534