From 6e89cb7d31d6b729b7aade6c2d9d20014a000a93 Mon Sep 17 00:00:00 2001
From: Hannes Braun <hannes.braun@slub-dresden.de>
Date: Tue, 18 Jun 2024 10:13:31 +0200
Subject: [PATCH] Add logging

---
 files/opt/simple-backup/simple-backup.sh | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/files/opt/simple-backup/simple-backup.sh b/files/opt/simple-backup/simple-backup.sh
index 82ae345..d83ba82 100644
--- a/files/opt/simple-backup/simple-backup.sh
+++ b/files/opt/simple-backup/simple-backup.sh
@@ -25,7 +25,7 @@ nfs_mount_path=$(awk -F= -v section="$section" -v key="$key" '
 ' $config_file)
 
 if test -z "$nfs_mount_path"; then
-  echo "No nfs volume path was provided"
+  logger "Simple-Backup: ERROR Code 1: Missing necessary configuration. No nfs mount path was provided."
   exit 1
 fi
 
@@ -40,7 +40,7 @@ nfs_server=$(awk -F= -v section="$section" -v key="$key" '
 ' $config_file)
 
 if test -z "$nfs_server"; then
-  echo "No nfs volume path was provided"
+  logger "Simple-Backup: ERROR Code 1: Missing necessary configuration. No nfs server ip adress was provided."
   exit 1
 fi
 
@@ -55,7 +55,7 @@ nfs_volume_path=$(awk -F= -v section="$section" -v key="$key" '
 ' $config_file)
 
 if test -z "$nfs_volume_path"; then
-  echo "No nfs volume path was provided"
+  logger "Simple-Backup: ERROR Code 1: Missing necessary configuration. No nfs volume path was provided."
   exit 1
 fi
 
@@ -73,7 +73,7 @@ source_directories=($(awk -F= -v section="$section" -v key="$key" '
 ' $config_file))
 
 if test -z "$source_directories"; then
-  echo "No source directory was provided"
+  logger "Simple-Backup: ERROR Code 1: Missing necessary configuration. No source directory was provided."
   exit 1
 fi
 
@@ -93,7 +93,7 @@ excludes=($(awk -F= -v section="$section" -v key="$key" '
 
 
 
-##### MOUNTS NFS SHARE #####
+##### MOUNT NFS SHARE #####
 
 if [ ! -d "$nfs_mount_path" ]; then
   mkdir -p "$nfs_mount_path"
@@ -120,12 +120,22 @@ readonly BACKUP_DIR="${nfs_mount_path}/backups/${HOSTNAME}"
 readonly DATETIME="$(date '+%Y-%m-%d_%H:%M:%S')"
 readonly BACKUP_PATH="${BACKUP_DIR}/${DATETIME}"
 readonly LATEST_LINK="${BACKUP_DIR}/latest"
+readonly LOG_FILE="${BACKUP_PATH}.log"
 
 mkdir -p "${BACKUP_DIR}"
 
 rsync_cmd_str="rsync -avR --delete ${source_string} --link-dest ${LATEST_LINK} ${exclude_string} ${BACKUP_PATH}"
 echo $rsync_cmd_str
-$rsync_cmd_str
+$rsync_cmd_str  &>> "$LOG_FILE" || true
+RSYNC_EXIT_CODE=$?
+
+if [ $RSYNC_EXIT_CODE -eq 0 ]; then
+    echo "Simple-Backup: INFO Code 0: Rsync completed successfully." &>> "$LOG_FILE"
+    logger "Simple-Backup: INFO Code 0: Rsync completed successfully."
+else
+    echo "Simple-Backup: ERROR Code $RSYNC_EXIT_CODE: Rsync ended with errors." &>> "$LOG_FILE"
+    logger "Simple-Backup: ERROR Code $RSYNC_EXIT_CODE: Rsync ended with errors."
+fi
 
 rm -rf "${LATEST_LINK}"
 ln -s "${BACKUP_PATH}" "${LATEST_LINK}"
-- 
GitLab