aboutsummaryrefslogtreecommitdiffstats
path: root/modules/rsnapshot/manifests/init.pp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/rsnapshot/manifests/init.pp')
-rw-r--r--modules/rsnapshot/manifests/init.pp41
1 files changed, 40 insertions, 1 deletions
diff --git a/modules/rsnapshot/manifests/init.pp b/modules/rsnapshot/manifests/init.pp
index 15b54735..2d6cbe00 100644
--- a/modules/rsnapshot/manifests/init.pp
+++ b/modules/rsnapshot/manifests/init.pp
@@ -8,6 +8,23 @@ class rsnapshot {
group => root,
mode => 0700,
}
+
+ @rsnapshot::cron_file { 'hourly': }
+ @rsnapshot::cron_file { 'daily': }
+ @rsnapshot::cron_file { 'weekly': }
+ @rsnapshot::cron_file { 'monthly': }
+ }
+
+ define cron_file($rsnapshot_conf = []) {
+ $filepath = "/tmp/cron.${name}_rsnapshot-backups"
+ $rsnapshot_arg = ${name}
+ file { $filepath:
+ ensure => present,
+ content => template('rsnapshot/cron_file'),
+ owner => root,
+ group => root,
+ mode => 0755,
+ }
}
# - 'backup' is an array of "source destination" to backup
@@ -25,11 +42,33 @@ class rsnapshot {
$weekly_interval = '4',
$monthly_interval = '3'
) {
- file { "${rsnapshot::base::confdir}/${name}.conf":
+ $conffile = "${rsnapshot::base::confdir}/${name}.conf"
+ file { $conffile:
owner => root,
group => root,
mode => 0700,
content => template('rsnapshot/rsnapshot.conf'),
}
+
+ if ($hourly_interval != '0') {
+ Rsnapshot::Cron_file <| title == 'hourly' |> {
+ $rsnapshot_conf +> $conffile,
+ }
+ }
+ if ($daily_interval != '0') {
+ Rsnapshot::Cron_file <| title == 'daily' |> {
+ $rsnapshot_conf +> $conffile,
+ }
+ }
+ if ($dweekly_interval != '0') {
+ Rsnapshot::Cron_file <| title == 'weekly' |> {
+ $rsnapshot_conf +> $conffile,
+ }
+ }
+ if ($monthly_interval != '0') {
+ Rsnapshot::Cron_file <| title == 'monthly' |> {
+ $rsnapshot_conf +> $conffile,
+ }
+ }
}
}