aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/init.pp20
-rw-r--r--templates/rsync-check.sh.erb34
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