From d5e4ebbb9c023aabbc49218d49eac3099b19fe19 Mon Sep 17 00:00:00 2001 From: Norbert Varzariu Date: Thu, 21 Jan 2016 15:11:10 +0100 Subject: [PATCH] add backup script templates --- templates/misc.sh.erb | 10 ++++++++++ templates/mysql.sh.erb | 16 ++++++++++++++++ templates/psql.sh.erb | 17 +++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 templates/misc.sh.erb create mode 100644 templates/mysql.sh.erb create mode 100644 templates/psql.sh.erb diff --git a/templates/misc.sh.erb b/templates/misc.sh.erb new file mode 100644 index 0000000..8e19cf6 --- /dev/null +++ b/templates/misc.sh.erb @@ -0,0 +1,10 @@ +#!/bin/bash +# add custom stuff here +# FIXME: remember to concat for custom stuff after the last line of the puppet generated script +<% if @osfamily == 'RedHat' -%> +ssh <%=@host-%> rpm -qa --qf='%{name},' > packages.txt +<%end-%> +# +# +# +# ++++++++++++++++++++++++++++++++++++++++++++ diff --git a/templates/mysql.sh.erb b/templates/mysql.sh.erb new file mode 100644 index 0000000..f07f69d --- /dev/null +++ b/templates/mysql.sh.erb @@ -0,0 +1,16 @@ +#!/bin/bash +# written by Norbert Varzariu +# This Script is triggered by rsnapshot and dumps the specified dbs on the configured host. +# +host=<%=@host%> +user=<%=@dbbackup_user%> +pass=<%=@dbbackup_password%> + +dbs=( $(mysql -h "$host" -u "$user" -p"$pass" -e 'show databases' | sed '1d;/information_schema/d;/performance_schema/d') ) + +for db in "${dbs[@]}"; do + mysqldump --host="$host" --user="$user" --password="$pass" --single-transaction --quick --routines --ignore-table=mysql.event "$db" > "$db".sql + wait + pbzip2 -p3 "$db".sql +done + diff --git a/templates/psql.sh.erb b/templates/psql.sh.erb new file mode 100644 index 0000000..596de34 --- /dev/null +++ b/templates/psql.sh.erb @@ -0,0 +1,17 @@ +#!/bin/bash +# written by Norbert Varzariu +# This Script is triggered by rsnapshot and dumps the specified dbs on the configured host. +# +host=<%=@host%> +user=<%=@dbbackup_user%> +pass=<%=@dbbackup_password%> + +PGPASSWORD="$pass" +dbs=( $(psql -h "$host" -U "$user" -Atc "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres'") ) + +for db in "${dbs[@]}"; do + ssh -l root "$host" "pg_dump -U ${user} -Fc ${db}" > "$db".sql + wait + pbzip2 -p3 "$db".sql +done +