#!/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.$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