ImageBackup creates incremental backup CDs of digital pictures.
Version: 1.8This is a small Perl script to create backup CDs out of images. I like to organize my digital pictures into a directory structure based on image content and subject. I don't store them by date. This makes it nice to find pictures, but difficult to back them up without using traditional incremental backup software and/or backing up some images more than once.
License: MIT/X Consortium License
Operating System: Linux
Although this program is made to work well with AutoScrapbook, it can work with any directory of images. You run the program and specify a base directory. The directory is processed recursively and any images are mirrored into a staging area.
Once enough images are in the staging area, the program will (optionall) run AutoScrapbook to create a set of web pages specifically for that disc of images. It will then create an ISO image that you can burn to CD when convenient. This script is made to work on Linux, but could work on other systems with a bit of modification.
Once a disc has been created, the list of images that were on that disc is stored in a hidden data file in the base directory specified. You can then run ImageBackup on that directory again. Any images not included in any previous backups will be mirrored to the (now empty) staging directory.
If the directory fills, another ISO will be generated. If not, the staging directory will remain partially-filled. You can then run ImageBackup regularly (i.e. from cron even) and new images will be added to the staging directory as they are found. Whenever the disc is full enough, an ISO is generated, and the whole process starts over.
To use the program, simply download the program below and place it somewhere on your system. If your Perl interpreter is not in /usr/bin/perl, you will have to edit the first line of the file.
Edit the program and change any of the variables near the top that need to be changed.
Then, simply run the program with a directory name as a parameter. You should always enter the same base directory name for good results. If, for example, you run ImageBackup on ~/pictures and created a backup CD, you should always run it on the same directory from then on.
You can have this script run automatically -- say once per week. Just run this script from cron (on Red Hat Linux, for example, just place this in /etc/cron.weekly):
mkdir -p "$TEMPDIR"
for dir in $DIRS ; do
echo "Processing directory $dir"
iso=`$image_backup $dir 2> "$TEMPDIR/image_backup.errors" | grep '^ISO Image Ready:'`
if [ $? == 0 ] ; then
mail -s "$iso" $email < /dev/null
elif [ $? == -1 ] ; then
echo "Not enough images yet..."
echo "ERROR running image backup!" >&2
mail -s 'Image backup errors!' $email < "$TEMPDIR/image_backup.errors"
Now you will receive an email whenever a new ISO image is available or if there are any errors.
Note that if you configure ImageBackup to use AutoScrapbook to create an index on the backup CDs, you must have already run AutoScrapbook on the source directories if you are running ImageBackup non-interactively.
If you haven't, then picture descriptions will be requested during the cron job, which won't work too well.