Stuff too big to tweet, not big enough to blog.

17th December 2009

Link

Simple backup shell script →

Found in an old drive archive, this script would get cron’d and rip to CD every day. I’m sure there’s more elegant solutions, but this did the job well.

#!/bin/sh 
# NAME: sys_backup.sh
#
# DESCRIPTION: A cool backup script that burns the system files to a CDRW
# This script originally runs on RH9 with a 40x CDRW drive.
# Requires a CDRW media in drive at all times (min 4x RW)
#
# ORIGINAL AUTHOR: Kris Resellmo
#
# MODIFIED: $Date: 2003/10/09 00:52:58 $
# $Author: dennis $
# $Revision: 1.1 $

# General script vars
NOWDATE=`date "+%Y-%m-%d_%H%M"`
ISONAME=peerview.iso

# Directories to back up
DB_ARCHIVE_DIR=/bu/database_backup
REPOSITORY_DIR=/bu/repository_backup

# Location of backups
BACKUPDIR=/cdrw_temp/data
BACKUPTEMPDIR=/cdrw_temp

# TAR arguments
TARARGS="cf -"

#####
# Script start
echo "$NOWDATE System backup script started."

# Remove previous backup files
echo "Cleaning up previous backup gzipped files..."
rm -f $BACKUPDIR/*.gz
#rm -f $BACKUPTEMPDIR/$ISONAME
echo "Cleanup done."

# Archive files
echo "Now tar gzipping $DB_ARCHIVE_DIR"
tar $TARARGS $DB_ARCHIVE_DIR | gzip > $BACKUPDIR/db_$NOWDATE.tar.gz
echo "Now tar gzipping $RESPOSITORY_DIR"
NOWDATE=`date "+%Y-%m-%d_%H%M"`
tar $TARARGS $REPOSITORY_DIR | gzip > $BACKUPDIR/cvs_$NOWDATE.tar.gz

# make ISO
# delete old ISO if it exists
if [ -f "$BACKUPTEMPDIR/$ISONAME" ]
then
echo "Deleting previous backup ISO file at $BACKUPTEMPDIR"
rm -f $BACKUPTEMPDIR/$ISONAME
fi

echo "Creating new ISO image..."
mkisofs -r $BACKUPDIR > $BACKUPTEMPDIR/$ISONAME

# burn cd and blank old disc
echo "Now burning CD image to media..."
cdrecord speed=4 dev=0,0,0 blank=fast -multi -data $BACKUPTEMPDIR/$ISONAME

# Finish up
echo "Finished backup of system at `date "+%Y-%m-%d_%H%M"`"

Tagged: scriptshellcodebackup