44 lines
826 B
Bash
44 lines
826 B
Bash
#/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
|