summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2013-02-18 22:13:56 +0100
committerMarcel Haerry <haerry@puzzle.ch>2013-02-19 10:12:35 +0100
commit6d9a84686734e598249410bf60eedf2d7fd2e521 (patch)
treefbd7fcb746620a61f8adda2ea3d2f3e9473a6cf5
parentfc1210bea8931648e7600c5d55d252fed4b17cc2 (diff)
introduce helpers for mysql backups
-rw-r--r--files/backup_helpers/mysql_extract_from_backup.sh17
-rw-r--r--manifests/server/backup_helpers.pp11
-rw-r--r--manifests/server/base.pp1
3 files changed, 29 insertions, 0 deletions
diff --git a/files/backup_helpers/mysql_extract_from_backup.sh b/files/backup_helpers/mysql_extract_from_backup.sh
new file mode 100644
index 0000000..74914e9
--- /dev/null
+++ b/files/backup_helpers/mysql_extract_from_backup.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+file=$1
+db=$2
+table=$3
+
+if [ ! -f $file ] || [ -z $db ]; then
+ echo "USAGE: $0 file database [table] > dump_file"
+ exit
+fi
+
+if [ -z $table ]; then
+ zcat $file | sed -n -e "/CREATE DATABASE.*${db}/,/CREATE DATABASE/p" | head -n -5
+else
+ zcat $file | sed -n -e "/CREATE DATABASE.*${db}/,/CREATE DATABASE/p" | sed -n -e "/CREATE TABLE.*${table}/,/CREATE TABLE/p" | head -n -8
+fi
+
diff --git a/manifests/server/backup_helpers.pp b/manifests/server/backup_helpers.pp
new file mode 100644
index 0000000..564e2ab
--- /dev/null
+++ b/manifests/server/backup_helpers.pp
@@ -0,0 +1,11 @@
+# Helpers for mysql servers
+# In a dedicated class so they can
+# also be pulled in somewhere else
+class mysql::server::backup_helpers{
+ file{'/usr/local/bin/mysql_extract_from_backup':
+ source => 'puppet:///modules/mysql/backup_helpers/mysql_extract_from_backup.sh',
+ owner => root,
+ group => 0,
+ mode => '0555';
+ }
+}
diff --git a/manifests/server/base.pp b/manifests/server/base.pp
index 8bdd865..14f3c1b 100644
--- a/manifests/server/base.pp
+++ b/manifests/server/base.pp
@@ -66,6 +66,7 @@ class mysql::server::base {
if $mysql::server::backup_cron {
include mysql::server::cron::backup
+ include mysql::server::backup_helpers
}
if $mysql::server::optimize_cron {