I have an script that copies for a month the blobs using hard links ( so you have and historial of the blobs as the Data.fs ):
backup.sh
#!/bin/sh
# per a fer un full : ./cron_nocturn.sh full
ZEO_FOLDER=/var/plone/ZEO
# Zeo port
ZEO_PORT = 8023
# Name of the DB
ZEO_DB = zodb1
BACKUP_FOLDER=/backup/plone
LOGBACKUP=/var/plone/ZEO/backup.log
BACKUPDIR=`date +%d`
echo "INICI BACKUP" >> $LOGBACKUP
echo `date` >> $LOGBACKUP
# Fem el packing
if [ "$1" = "full" ]; then
$ZEO_FOLDER/bin/zeopack -S $ZEO_DB -p $ZEO_PORT -h 127.0.0.1
echo " Comprovant folders"
#mirem si existeix el folder de backup
if ! [ -x $BACKUP_FOLDER/$ZEO_DB ]; then
mkdir $BACKUP_FOLDER/$ZEO_DB
fi
#mirem si existeix el backup folder del dia
if ! [ -x $BACKUP_FOLDER/blobs/$BACKUPDIR/ ] ; then
mkdir $BACKUP_FOLDER/blobs/$BACKUPDIR/
fi
echo " Backup Data.fs"
# backup de Data.fs
if [ "$1" = "full" ]; then
echo " Copiant Data.fs"
$ZEO_FOLDER/bin/repozo -B -F -r $BACKUP_FOLDER/$ZEO_DB/ -f $ZEO_FOLDER/var/filestorage/Data_$ZEO_DB.fs
echo " Purgant backups antics"
$ZEO_FOLDER/neteja.py -l $BACKUP_FOLDER/$ZEO_DB -k 2
else
$ZEO_FOLDER/bin/repozo -B -r $BACKUP_FOLDER/$ZEO_DB/ -f $ZEO_FOLDER/var/filestorage/Data_$ZEO_DB.fs
fi
echo " Copiant blobs"
# backup blobs
rm -rf $BACKUP_FOLDER/blobs/$BACKUPDIR
cd $BACKUP_FOLDER/current-blobs && find . -print | cpio -dplm $BACKUP_FOLDER/blobs/$BACKUPDIR
rsync --force --ignore-errors --delete --update -a $ZEO_FOLDER/var/blobs/ $BACKUP_FOLDER/current-blobs/
echo "FI BACKUP" >> $LOGBACKUP
echo `date` >> $LOGBACKUP
neteja.py
#!/usr/bin/python2.4
# neteja.py -l [directori_desti] -k [numero_fulls_a_mantenir]
# Script que neteja un directori amb backups i guarda nomes els ultims fulls que li especifiquis
# Es basa en la utilitzacio de collective.recipe.backup
# Author: Victor Fernandez de Alba <sneridagh@gmail.com>
import sys, getopt
answered 2011-03-10T16:54:01.070