From 07e32decf88e4e07515b32898c260576a6ca2062 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 14 Oct 2025 08:12:19 -0700 Subject: [PATCH] Fixes and enhancements for system backups. --- files/scripts/backup_system.sh | 38 ++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 13 deletions(-) mode change 100644 => 100755 files/scripts/backup_system.sh diff --git a/files/scripts/backup_system.sh b/files/scripts/backup_system.sh old mode 100644 new mode 100755 index cd96536..1fe382d --- a/files/scripts/backup_system.sh +++ b/files/scripts/backup_system.sh @@ -1,43 +1,55 @@ -#/usr/bin/env bash +#!/usr/bin/env bash ## Variables ## +if [[ -z "$HOSTNAME" ]]; then + echo "*** Pulling Hostname From Command ***" + export HOSTNAME="`hostname`" +fi +if [[ -z "$HOSTNAME" ]]; then + echo "*** Pulling Hostname From /etc/ File ***" + export HOSTNAME="`cat /etc/hostname`" +fi + EXTRA="$1" TAG="System" +DATE="`date "+%Y%m%d-%H%M%S"`" BACKUP_DIR="/srv/backup" BASENAME="$BACKUP_DIR/Backup" -BACKUP="$BASENAME.`now`.$HOSTNAME.$TAG.zip" +BACKUP="$BASENAME.$DATE.$HOSTNAME.$TAG.zip" ## Initialization ## echo "*** Creating Backup Directory ***" -mkdir -pv $BACKUP_DIR -chmod -Rv 755 $BACKUP_DIR -chown -Rv root:root $BACKUP_DIR +sudo mkdir -pv "$BACKUP_DIR" +sudo chmod -Rv 755 "$BACKUP_DIR" +sudo chown -Rv root:root "$BACKUP_DIR" +cd "$BACKUP_DIR" ## Cleanup ## echo "*** Removing Old Backups ***" -sh -c 'rm -fv "$BASENAME"*"$TAG"*' +mv -v "$BASENAME"*"$TAG"* ~/TRASH/ +rm -v ~/TRASH/"${BASENAME}*${TAG}*.zip" ## Main echo "*** Creating backup at '$BACKUP' ***" sudo zip -rv "$BACKUP" \ - /etc /var/{log,mail,spool} /srv /boot \ - /usr/local/etc $EXTRA + /etc /var/{log,mail,spool} /srv /boot \ + /usr/local/etc $EXTRA status="$?" if [[ "$status" != 0 ]]; then - echo "*** ERROR: Failed to create '$BACKUP', file may be incorrect. ***" + echo "*** ERROR: Failed to create '$BACKUP', file may be incorrect. ***" fi if [[ -e "$BACKUP" ]]; then - ls -alh "$BACKUP" - echo "*** '$BACKUP' created successfully! ***"s + ls -alh "$BACKUP" + echo "*** '$BACKUP' created successfully! ***"s else - echo "*** '$BACKUP' not found! ***" - exit 1 + echo "*** '$BACKUP' not found! ***" + exit 1 fi exit 0