#!/bin/bash
# crontab entry : 0 0 * * * /usr/local/scripts/databackup.sh
# or softlink in cron.daily : ln -s /usr/local/scripts/databackup.sh
# or softlink in cron.weekly : ln -s /usr/local/scripts/databackup.sh
# Back up data to remote server using ftp
# set -x
PATH=/bin:/usr/bin:/sbin:/usr/sbin
export PATH
# Specify Ftp details
FTPUSER="USERNAME"
FTPPASS="PASSWORD"
# location of binaries
GREP=`which grep`
MAIL=`which mail`
YUM=`which yum`
MKTEMP=`which mktemp`
TAR=`which tar`
FTP=`which ftp`
SEQ=`which seq`
# remote back up server
RHOST=REMOTE HOST
# mail address and servername
HOST=`hostname`
# fill in mail address
ADMIN=EMAIL ADDRESS
# logfile
LOG="/tmp/backup.log"
# tmp back up dir
BACKUPDIR="/tmp"
# base dir
BASEDIR="/home"
# clean up
> $LOG
> /tmp/folders.list
# start timestamp log
echo "Starting back up sequence" >> $LOG
date >> $LOG
# Check if back up server is up (this may be added later on)
# What folders need to be back upped:
FOLDERS=`ls /home > /tmp/folders.list`
a=( $( cat /tmp/folders.list ) )
for i in $($SEQ 0 $((${#a[@]} - 1)))
do
echo ${a[$i]} >> $LOG
tar Ppczf $BACKUPDIR/backup-${a[$i]}-`date +%m%d%Y`.tar.gz $BASEDIR/${a[$i]}
done
ftp -n -v $RHOST << EOT binary user $FTPUSER $FTPPASS prompt cd $HOST lcd $BACKUPDIR mput backup-*-`date +%m%d%Y`.tar.gz bye EOT # end timestamp log date >> $LOG
echo "Ending back up sequence" >> $LOG
cat $LOG | mail -s "Backup log for $HOST" $ADMIN