From d2a006c4ff18a1435f1740daefaa2a44bccc418a Mon Sep 17 00:00:00 2001 From: Deon George Date: Wed, 18 Dec 2013 14:42:20 +1100 Subject: [PATCH] Added more application scripts --- scripts/tdp.krb5.restore.sh | 64 +++++++++++++++++++++++++++++++++ scripts/tdp.krb5.sh | 62 ++++++++++++++++++++++++++++++++ scripts/tdp.mysql.restore.sh | 20 +++++++++++ scripts/tdp.mysql.sh | 24 +++++++++++-- scripts/tdp.openldap.restore.sh | 59 ++++++++++++++++++++++++++++++ scripts/tdp.openldap.sh | 62 ++++++++++++++++++++++++++++++++ 6 files changed, 289 insertions(+), 2 deletions(-) create mode 100755 scripts/tdp.krb5.restore.sh create mode 100755 scripts/tdp.krb5.sh create mode 100755 scripts/tdp.openldap.restore.sh create mode 100755 scripts/tdp.openldap.sh diff --git a/scripts/tdp.krb5.restore.sh b/scripts/tdp.krb5.restore.sh new file mode 100755 index 0000000..c83b3ca --- /dev/null +++ b/scripts/tdp.krb5.restore.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + +# Check our arguments +while getopts ":DF:k:P:t:" opt; do + case $opt in + D) DEBUG=1 ;; + + # Filespace to store in TSM + F) FILESPACE=$OPTARG ;; + + # Kerberos options + k) KERBEROS_ARGS=$OPTARG ;; + + # PITDATE to restore + P) PITDATE=$OPTARG ;; + + # Alternative TMP dir + t) TMPDIR=$OPTARG ;; + + # Error Checking + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +# Our defaults +TMPDIR=${TMPDIR:-"/tmp"} + +FILESPACE=${FILESPACE:-"/kerberos"} + +# TSMPIPE ARGUMENTS +[ -n "$PITDATE" ] && TSMPIPE_ARGS="${TSMPIPE_ARGS} -P ${PITDATE}" + +[ -n "$DEBUG" ] && echo "Processing Kerberos" + +# Restore from TSM +tsmpipe -Bxs ${FILESPACE} -f FULL ${TSMPIPE_ARGS} > ${TMPDIR}/kerberos.$$.dump && kdb5_util ${KERBEROS_ARGS} load ${TMPDIR}/kerberos.$$.dump +rm -f ${TMPDIR}/kerberos.$$.dump diff --git a/scripts/tdp.krb5.sh b/scripts/tdp.krb5.sh new file mode 100755 index 0000000..29177fe --- /dev/null +++ b/scripts/tdp.krb5.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + +# Check our arguments +while getopts ":DF:M:" opt; do + case $opt in + D) DEBUG=1 ;; + + # Filespace to store in TSM + F) FILESPACE=$OPTARG ;; + + # Digest to use + M) DIGEST=$OPTARG ;; + + # Error Checking + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +# Our defaults +FILESPACE=${FILESPACE:-"/kerberos"} + +# Get Size +function getsize() { + stat -c %s /var/kerberos/krb5kdc/principal +} + +# TSMPIPE ARGUMENTS +[ -n "$DIGEST" ] && TSMPIPE_ARGS="${TSMPIPE_ARGS} -m ${DIGEST}" + +size=$(getsize); + +[ -n "$DEBUG" ] && echo "Processing Kerberous, with size ($size)" + +# Backup to TSM +kdb5_util dump| tsmpipe -Bcs ${FILESPACE} -f FULL -l ${size} ${TSMPIPE_ARGS} diff --git a/scripts/tdp.mysql.restore.sh b/scripts/tdp.mysql.restore.sh index ac5297d..adf0070 100755 --- a/scripts/tdp.mysql.restore.sh +++ b/scripts/tdp.mysql.restore.sh @@ -1,5 +1,25 @@ #!/bin/bash +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + # Check our arguments while getopts ":DF:m:p:P:s:u:" opt; do case $opt in diff --git a/scripts/tdp.mysql.sh b/scripts/tdp.mysql.sh index 136bc97..7f3f3a9 100755 --- a/scripts/tdp.mysql.sh +++ b/scripts/tdp.mysql.sh @@ -1,5 +1,25 @@ #!/bin/bash +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + # Check our arguments while getopts ":d:DF:m:M:p:s:u:" opt; do case $opt in @@ -40,7 +60,7 @@ done # Our defaults FILESPACE=${FILESPACE:-"/mysqldump"} -MYSQL_ARGS=${MYSQL_ARGS:-"-K --skip-extended-insert --skip-dump-date"} +MYSQL_ARGS=${MYSQL_ARGS:-"-K --skip-extended-insert --skip-dump-date --log-error=/var/log/tsm/tdp.mysql.log"} [ -n "$DBPASS" ] && MYSQL_AUTH="-p${DBPASS}" [ -n "$DBUSER" ] && MYSQL_AUTH="-u${DBUSER} ${MYSQL_AUTH}" @@ -61,10 +81,10 @@ function getsize() { listdb | while read db; do [ -n "$DB" -a "$db" != "$DB" ] && continue; + SKIP=0 if [ -n "$SKIP_DB" ]; then OLDIFS=$IFS IFS=":" - SKIP=0 for x in $SKIP_DB ; do [ $x == $db ] && SKIP=1 && break done diff --git a/scripts/tdp.openldap.restore.sh b/scripts/tdp.openldap.restore.sh new file mode 100755 index 0000000..e21702f --- /dev/null +++ b/scripts/tdp.openldap.restore.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + +# Check our arguments +while getopts ":DF:P:s:" opt; do + case $opt in + D) DEBUG=1 ;; + + # Filespace to store in TSM + F) FILESPACE=$OPTARG ;; + + # PITDATE to restore + P) PITDATE=$OPTARG ;; + + # SLAP args + s) SLAPADD_ARGS=$OPTARG ;; + + # Error Checking + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +# Our defaults + +FILESPACE=${FILESPACE:-"/ldapdump"} + +# TSMPIPE ARGUMENTS +[ -n "$PITDATE" ] && TSMPIPE_ARGS="${TSMPIPE_ARGS} -P ${PITDATE}" + +[ -n "$DEBUG" ] && echo "Processing OpenLDAP" + +# Restore from TSM +tsmpipe -Bxs ${FILESPACE} -f FULL ${TSMPIPE_ARGS} | slapadd ${SLAPADD_ARGS} diff --git a/scripts/tdp.openldap.sh b/scripts/tdp.openldap.sh new file mode 100755 index 0000000..c79c7d1 --- /dev/null +++ b/scripts/tdp.openldap.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +# +# Copyright (c) 2012-2013 by Deon George + +# Check our arguments +while getopts ":DF:M:" opt; do + case $opt in + D) DEBUG=1 ;; + + # Filespace to store in TSM + F) FILESPACE=$OPTARG ;; + + # Digest to use + M) DIGEST=$OPTARG ;; + + # Error Checking + \?) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +# Our defaults +FILESPACE=${FILESPACE:-"/ldapdump"} + +# Get Size +function getsize() { + slapcat | wc -c +} + +# TSMPIPE ARGUMENTS +[ -n "$DIGEST" ] && TSMPIPE_ARGS="${TSMPIPE_ARGS} -m ${DIGEST}" + +size=$(getsize); + +[ -n "$DEBUG" ] && echo "Processing OpenLDAP, with size ($size)" + +# Backup to TSM +slapcat | tsmpipe -Bcs ${FILESPACE} -f FULL -l ${size} ${TSMPIPE_ARGS}