]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Adding logging
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 16 Nov 2017 12:27:15 +0000 (13:27 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 16 Nov 2017 12:27:15 +0000 (13:27 +0100)
bin/backup_pgsql.sh

index b1a7ea3ea8da09e97db3e8431096ac053130b750..468b1d292ac8b7d09f8b5c304f87252fe020da7d 100755 (executable)
@@ -87,6 +87,7 @@ BACKUP_SUCCESS='YES'
 # Define, check, create directories.
 BACKUP_DIR="${BACKUP_ROOTDIR}/${YEAR}/${MONTH}/${DAY}"
 TMP_DIR=
+LOGFILE="/dev/null"
 
 #-------------------------------------------------------------------
 detect_color() {
@@ -273,7 +274,7 @@ debug() {
     if [[ "${VERBOSE}" != "y" ]] ; then
         return 0
     fi
-    echo -e " * [$(my_date)] [${BASENAME}:DEBUG]: $@" >&2
+    echo -e " * [$(my_date)] [${BASENAME}:DEBUG]: $@" | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
@@ -281,17 +282,17 @@ info() {
     if [[ "${QUIET}" == "y" ]] ; then
         return 0
     fi
-    echo -e " ${GREEN}*${NORMAL} [$(my_date)] [${BASENAME}:${GREEN}INFO${NORMAL}] : $@" >&2
+    echo -e " ${GREEN}*${NORMAL} [$(my_date)] [${BASENAME}:${GREEN}INFO${NORMAL}] : $@" | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
 warn() {
-    echo -e " ${YELLOW}*${NORMAL} [$(my_date)] [${BASENAME}:${YELLOW}WARN${NORMAL}] : $@" >&2
+    echo -e " ${YELLOW}*${NORMAL} [$(my_date)] [${BASENAME}:${YELLOW}WARN${NORMAL}] : $@" | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
 error() {
-    echo -e " ${RED}*${NORMAL} [$(my_date)] [${BASENAME}:${RED}ERROR${NORMAL}]: $@" >&2
+    echo -e " ${RED}*${NORMAL} [$(my_date)] [${BASENAME}:${RED}ERROR${NORMAL}]: $@" | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
@@ -300,7 +301,7 @@ MKDIR() {
     if [[ "${VERBOSE}" == "y" ]] ; then
         cmd+=" --verbose"
     fi
-    eval ${cmd} "$@"
+    eval ${cmd} "$@" 2>&1 | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
@@ -309,7 +310,7 @@ RM() {
     if [[ "${VERBOSE}" == "y" ]] ; then
         cmd+=" --verbose"
     fi
-    eval ${cmd} "$@"
+    eval ${cmd} "$@" 2>&1 | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
@@ -318,7 +319,7 @@ RMDIR() {
     if [[ "${VERBOSE}" == "y" ]] ; then
         cmd+=" --verbose"
     fi
-    eval ${cmd} "$@"
+    eval ${cmd} "$@" 2>&1 | tee -a "${LOGFILE}"
 }
 
 #------------------------------------------------------------------------------
@@ -326,7 +327,7 @@ empty_line() {
     if [[ "${QUIET}" == "y" ]] ; then
         return 0
     fi
-    echo
+    echo 2>&1 | tee -a "${LOGFILE}"
 }
 
 ################################################################################
@@ -347,12 +348,12 @@ get_databases() {
     done
 
     if [[ "${VERBOSE}" == "y" ]] ; then
-        echo
-        echo "Databases to backup:"
+        echo | tee -a "${LOGFILE}"
+        echo "Databases to backup:" | tee -a "${LOGFILE}"
         for db in "${DATABASES[@]}" ; do
-            echo " * '${db}'"
+            echo " * '${db}'" | tee -a "${LOGFILE}"
         done
-        echo
+        echo | tee -a "${LOGFILE}"
     fi
 
 }
@@ -372,6 +373,7 @@ prepare_dirs() {
     MKDIR -p "${BACKUP_DIR}"
     TMP_DIR=$( mktemp -d -p "${HOME}" backup.XXXXXXXX.d )
     debug "Temporary directory is '${TMP_DIR}'."
+    LOGFILE="${BACKUP_DIR}/${TIMESTAMP}.log"
 
     debug "Creating trap to cleanup temporary directory ..."
     trap cleanup_tmp_dir INT TERM EXIT ABRT
@@ -389,7 +391,7 @@ cleanup_old_backups() {
     fi
 
     find "${BACKUP_ROOTDIR}" -type f -mtime +${KEEP_DAYS} -print0 | \
-        xargs --null --no-run-if-empty rm ${verbose_option}
+        xargs --null --no-run-if-empty rm ${verbose_option} 2>&1 | tee -a "${LOGFILE}"
 
     local year=
     local month=
@@ -436,8 +438,9 @@ main() {
 
     get_options "$@"
 
-    get_databases
     prepare_dirs
+    info "Starting backup ..."
+    get_databases
     cleanup_old_backups
 
     empty_line