From ed160da316b34e2c4dbc0784b7dfd0a3111ddf40 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 14 Oct 2025 07:44:26 -0700 Subject: [PATCH] Move `backup` function into script so that cron can access it. --- files/scripts/backup_system.sh | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 files/scripts/backup_system.sh diff --git a/files/scripts/backup_system.sh b/files/scripts/backup_system.sh new file mode 100644 index 0000000..cd96536 --- /dev/null +++ b/files/scripts/backup_system.sh @@ -0,0 +1,43 @@ +#/usr/bin/env bash + +## Variables ## + +EXTRA="$1" +TAG="System" +BACKUP_DIR="/srv/backup" +BASENAME="$BACKUP_DIR/Backup" +BACKUP="$BASENAME.`now`.$HOSTNAME.$TAG.zip" + +## Initialization ## + +echo "*** Creating Backup Directory ***" +mkdir -pv $BACKUP_DIR +chmod -Rv 755 $BACKUP_DIR +chown -Rv root:root $BACKUP_DIR + +## Cleanup ## + +echo "*** Removing Old Backups ***" +sh -c 'rm -fv "$BASENAME"*"$TAG"*' + +## Main + +echo "*** Creating backup at '$BACKUP' ***" +sudo zip -rv "$BACKUP" \ + /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. ***" +fi + +if [[ -e "$BACKUP" ]]; then + ls -alh "$BACKUP" + echo "*** '$BACKUP' created successfully! ***"s +else + echo "*** '$BACKUP' not found! ***" + exit 1 +fi + +exit 0