With the following script you can backup entire system or one directory. The script provides incremental backup and a log file for each backup session.


date=`date "+%Y-%m-%dT%H_%M_%S"`

# Setup Directory Variables

# Rsync All Data in local Dir
rsync -azP \
--delete \
--delete-excluded \
--log-file=$BACKUPHOME/back-$date-incomplete-LOGFILE.txt --stats \
--exclude-from=$BACKUPHOME/.rsync/exclude \
--link-dest=../current \
$DIR2BCK $BACKUPHOME/incomplete_back-$date

# Create incremental DIR and current link
mv $BACKUPHOME/incomplete_back-$date $BACKUPHOME/back-$date \
&& mv $BACKUPHOME/back-$date-incomplete-LOGFILE.txt $BACKUPHOME/back-$date-LOGFILE.txt \
&& rm -f $BACKUPHOME/current \
&& rm -f $BACKUPHOME/current-log \
&& ln -s $BACKUPHOME/back-$date $BACKUPHOME/current \
&& ln -s $BACKUPHOME/back-$date-LOGFILE.txt $BACKUPHOME/current-log

# Add disk usage for each backup to log file
cd $BACKUPHOME/ && du -shc back-* >> $BACKUPHOME/current-log


Try to put this script in /etc/cron.daily/
In this example I do a backup of my /etc/ directory every time, but you can change this variables with your web site root directory