58 lines
1.2 KiB
Bash
Executable File
58 lines
1.2 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 mkdir -pv "$BACKUP_DIR/TRASH"
|
|
sudo chmod -Rv 775 "$BACKUP_DIR"
|
|
sudo chown -Rv root:root "$BACKUP_DIR"
|
|
|
|
## Cleanup ##
|
|
|
|
echo "*** Removing Old Backups ***"
|
|
cd "$BACKUP_DIR"
|
|
sudo mv -v "$BASENAME"*"$TAG"* TRASH/
|
|
sudo rm -v TRASH/*
|
|
|
|
## Main
|
|
|
|
echo "*** Creating backup at '$BACKUP' ***"
|
|
sudo zip -rv "$BACKUP" \
|
|
/etc /var/{log,mail,spool} /srv /boot \
|
|
/usr/local/etc $EXTRA \
|
|
-x "/srv/backup/*"
|
|
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! ***"
|
|
else
|
|
echo "*** '$BACKUP' not found! ***"
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|