This has been a great discussion thus far - I've heard about some tools for the first time here. To contribute back, here is the BASH script I use for my backup routines. The magic is that it doesn't try to be a one-stop solution for all scenarios. Instead it expects each scenario to take care of itself via a separate script, and place it's backup files into the working directory under a reasonably named sub-directory. Then it just tar's up the whole working directory... The depth or number of backups can be easily changed by altering the DAY variable. Of course, I don't pretend this is the BEST solution in all cases though, so use your best judgment. Oh and let me know if you see anything I can do better.. thanks!

Shawn

#!/bin/bash

WORK=/home/backup/working
SCRIPTS=/home/backup/scripts
TARGET=/home/backup/days

#make sure our directories exist
[ ! -d $WORK ] && mkdir -p $WORK
[ ! -d $SCRIPTS ] && mkdir -p $SCRIPTS
[ ! -d $TARGET ] && mkdir -p $TARGET

#set up the day directory
DAY=`date +%a `
rm -rf /home/backup/days/$DAY #remove the directory so we don't have any old backups kicking around mkdir -p "/home/backup/days/$DAY" #create the "day" directory (i.e. Sun, Mon, Tue, etc.)

echo "*************************************" >> $TARGET/$DAY/backup.log
echo "**  Starting backup                **" >> $TARGET/$DAY/backup.log
echo "*************************************" >> $TARGET/$DAY/backup.log
echo `date` >> $TARGET/$DAY/backup.log
echo ""  >> $TARGET/$DAY/backup.log

echo "*************************************" >> $TARGET/$DAY/backup.log
echo "**  Backup Scripts                 **" >> $TARGET/$DAY/backup.log
echo "*************************************" >> $TARGET/$DAY/backup.log

#execute each of the backup scripts
for f in `ls $SCRIPTS`
do
## Each Script is simply another BASH file that executes the commands ## to copy the desired files into the working directory. For instance ## if we were rsync'ing a remote website into the working directory, we
        ## would place it in $WORK/[remote_site_name]/
        echo "**** Executing backup script: $f"  >> $TARGET/$DAY/backup.log
        $SCRIPTS/$f  >> $TARGET/$DAY/backup.log
done

echo "*************************************" >> $TARGET/$DAY/backup.log
echo "**  Tar Files                      **" >> $TARGET/$DAY/backup.log
echo "*************************************" >> $TARGET/$DAY/backup.log

#create the tar file
cd $WORK
for d in `ls $WORK`
do
echo "**** Creating tar file for directory: $d" >> $TARGET/$DAY/backup.log
        tar cvzf $TARGET/$DAY/$d.tar.gz $d/  >> $TARGET/$DAY/backup.log
done

echo ""  >> $TARGET/$DAY/backup.log
echo `date` >> $TARGET/$DAY/backup.log
echo "*************************************" >> $TARGET/$DAY/backup.log
echo "**  Backup Finished                **" >> $TARGET/$DAY/backup.log
echo "*************************************" >> $TARGET/$DAY/backup.log


_______________________________________________
clug-talk mailing list
clug-talk@clug.ca
http://clug.ca/mailman/listinfo/clug-talk_clug.ca
Mailing List Guidelines (http://clug.ca/ml_guidelines.php)
**Please remove these lines when replying

Reply via email to