Files
env-ansible/files/scripts/backup_system.sh

56 lines
1.1 KiB
Bash
Executable File

#!/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"
BACKUP="$BACKUP_DIR/$BASENAME.$DATE.$HOSTNAME.$TAG.zip"
## Initialization ##
echo "*** Creating Backup Directory ***"
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 ***"
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
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