From cd110f2944e9fb37cd1f21bb869d24949f6941f0 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 11 Dec 2009 00:18:29 +0100 Subject: new version, mysql binlog reset --- common/check_tools.sh | 11 +++++++++++ common/init.sh | 21 +++++++++++++++++++++ common/log.sh | 15 +++++++++++++++ common/update.sh | 18 ++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 common/check_tools.sh create mode 100644 common/init.sh create mode 100644 common/log.sh create mode 100644 common/update.sh (limited to 'common') diff --git a/common/check_tools.sh b/common/check_tools.sh new file mode 100644 index 0000000..ba3640d --- /dev/null +++ b/common/check_tools.sh @@ -0,0 +1,11 @@ +# check for necessary tools + +_check_tools() { + for prog in $@ + do + if ! hash $prog 2>/dev/null ; then + echo "Error: This script needs '$prog'. Exiting..." >&2 + exit 1 + fi + done +} diff --git a/common/init.sh b/common/init.sh new file mode 100644 index 0000000..a955f18 --- /dev/null +++ b/common/init.sh @@ -0,0 +1,21 @@ +# init common function for backup + +# get path to common script dir +if [ -z "${BACKUP_ROOT}" -o ! -d "${BACKUP_ROOT}/common/" ]; then + echo "\$BACKUP_ROOT not set or invalid! (common dir not there)" >&2 + echo "Please set it to the path to the root directory of the" >&2 + echo "backup scripts before sourcing this init.sh file." >&2 + exit 1 +fi + +# load all common scripts +for file in ${BACKUP_ROOT}/common/* +do + if [ "$(basename ${file})" != "init.sh" ]; then + source "${file}" + fi +done + +# check if git is available for update +_check_tools git +_self_update diff --git a/common/log.sh b/common/log.sh new file mode 100644 index 0000000..622a9bb --- /dev/null +++ b/common/log.sh @@ -0,0 +1,15 @@ +# log function for displaying output if loging enabled + +_log() { + # only output something, + # if logging is enabled + if [ $LOGGING -eq 0 ]; then + if [ -n "$1" ]; then + # echo arguments + echo "$@" + else + # echo stdin + cat + fi + fi +} diff --git a/common/update.sh b/common/update.sh new file mode 100644 index 0000000..c4f0b5f --- /dev/null +++ b/common/update.sh @@ -0,0 +1,18 @@ +# update backup scripts + +_self_update() { + pushd $(dirname $0) &>/dev/null + + git fetch origin 2>/dev/null + if [[ -n "$(git whatchanged HEAD..origin/master)" ]]; then + echo "Selfupdating backupscript..." | log + git merge origin/master | log + echo "Selfupdating done." | log + echo | log + + popd &>/dev/null + exec $0 + fi + + popd &>/dev/null +} -- cgit v1.2.3