#!/bin/bash

##############################################
# back up all unique scripts in usr/local/   #
##############################################

BACKUP_ROOT=/backup
KEEPDAYS=365

BACKUP_DIR=$BACKUP_ROOT/sys-data/usrlocal

##############################################

function rotate_backup
{
    # delete older than 8 days
    find $BACKUP_DIR/*.tar.bz2 -mtime +8 -delete >/dev/null 2>&1

    # weekly rotate on sundays
    if [ "`date +%u`" = "7" ]; then
	find $BACKUP_DIR/*.tar.bz2 -mtime +7 -exec mv {} $BACKUP_DIR/weekly/ \; >/dev/null 2>&1
	find $BACKUP_DIR/weekly/*.tar.bz2 -mtime +$KEEPDAYS -delete >/dev/null 2>&1
    fi

    return 0
}

[ -d $BACKUP_ROOT ] || exit 21

[ -d $BACKUP_DIR ] || mkdir -p $BACKUP_DIR
[ -d $BACKUP_DIR/weekly ] || mkdir -p $BACKUP_DIR/weekly

rotate_backup

TS=`date +%Y%m%d`
TAR_FILE=usrlocal-$TS.tar.bz2
[ -f $TAR_FILE ] && rm $TAR_FILE
tar -cjPf $BACKUP_DIR/$TAR_FILE /usr/local/

chown 0:0 $BACKUP_DIR/$TAR_FILE
chmod 0600 $BACKUP_DIR/$TAR_FILE
