Move backup
function into script so that cron can access it.
This commit is contained in:
43
files/scripts/backup_system.sh
Normal file
43
files/scripts/backup_system.sh
Normal file
@@ -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
|
Reference in New Issue
Block a user