diff options
-rw-r--r-- | manifests/init.pp | 20 | ||||
-rw-r--r-- | templates/rsync-check.sh.erb | 34 |
2 files changed, 54 insertions, 0 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index 556b0c7..112cdf2 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -99,6 +99,26 @@ class backup { require => File['/usr/local/sbin/rdiff-check'], } + # rsync-check script + file { "/usr/local/sbin/rsync-check": + content => template('backup/rsync-check.sh.erb'), + owner => root, + group => root, + mode => 0755, + ensure => present, + } + + # check rsync-backups once a week + cron { "rsync_check": + command => "/usr/local/sbin/rsync-check", + user => root, + hour => "0", + minute => "0", + weekday => "0", + ensure => present, + require => File['/usr/local/sbin/rsync-check'], + } + # we have to keep that until squeeze turns stable file { "/usr/share/backupninja/rsync": ensure => present, diff --git a/templates/rsync-check.sh.erb b/templates/rsync-check.sh.erb new file mode 100644 index 0000000..e945b8c --- /dev/null +++ b/templates/rsync-check.sh.erb @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Check rsync backup sets. +# + +BACKUP_FOLDER="<%= backupdir_remote %>" + +if [ -e "$BACKUP_FOLDER" ]; then + cwd="`pwd`" + cd $BACKUP_FOLDER + + for set in `find -maxdepth 2 -name 'rsync'`; do + echo " " + echo "Checking backup set $set..." + echo "======================================================" + echo " " + + # Check rsync metadata + for metadata in `find $set -name created`; do + echo $metadata + cat $metadata + done + + if [ -d "$set/<%= backupdir %>/duplicity" ]; then + echo " " + echo "Checking duplicity backup found at $set/<%= backupdir %>/duplicity..." + echo "======================================================" + echo " " + duplicity collection-status file:///$BACKUP_FOLDER/$set/<%= backupdir %>/duplicity + fi + done + + cd $cwd +fi |