Novell Home

Create Multiple Backup Versions on your Disk

Novell Cool Solutions: Tip
By Tore Agblad

Digg This - Slashdot This

Posted: 9 Feb 2007
 

Problem:

Multiple backup versions available on your disk.

A complement to ordinary backup/archive.

Solution:

Compress selected dirs and or filetypes into zipfiles and name them with a number last showing the version.

A 1 last means -1 day, a 2 means -2 days and so on. My example script below rotates the names and make a new 0 version.

The pros with this solution are that you have multiple versions directly available.

So if you have overwritten a document two days ago and by mistake deleted to much text, it's very easy just get it back.

Example:

#!/bin/bash
#
#  Do backups for Tore
#
echo "Tores backups  /etc/cron.custom/tags-backup.sh"
BKUPDIR="/home/tore/backups"
echo "backupdir="$BKUPDIR
# let DAY=$(date -u +%w)
# echo "Day="$DAY

# Test if backup dir is mounted.
if test -d "$BKUPDIR"; then
   echo "OK backupdir is available"
else
   echo "WARN backup dir not available"
fi
# Test if backup dir is mounted.
if test -d "$BKUPDIR"; then
   echo "OK backupdir is available, rotating backup zipfiles now."
   mv --force              $BKUPDIR/tag-docs-5.zip $BKUPDIR/tag-docs-6.zip
   mv --force              $BKUPDIR/tag-docs-4.zip $BKUPDIR/tag-docs-5.zip
   mv --force              $BKUPDIR/tag-docs-3.zip $BKUPDIR/tag-docs-4.zip
   mv --force              $BKUPDIR/tag-docs-2.zip $BKUPDIR/tag-docs-3.zip
   mv --force              $BKUPDIR/tag-docs-1.zip $BKUPDIR/tag-docs-2.zip
   cp --remove-destination $BKUPDIR/tag-docs-0.zip $BKUPDIR/tag-docs-1.zip

   mv --force              $BKUPDIR/tag-html-5.zip $BKUPDIR/tag-html-6.zip
   mv --force              $BKUPDIR/tag-html-4.zip $BKUPDIR/tag-html-5.zip
   mv --force              $BKUPDIR/tag-html-3.zip $BKUPDIR/tag-html-4.zip
   mv --force              $BKUPDIR/tag-html-2.zip $BKUPDIR/tag-html-3.zip
   mv --force              $BKUPDIR/tag-html-1.zip $BKUPDIR/tag-html-2.zip
   cp --remove-destination $BKUPDIR/tag-html-0.zip $BKUPDIR/tag-html-1.zip

   mv --force              $BKUPDIR/tag-scripts-5.zip $BKUPDIR/tag-scripts-6.zip
   mv --force              $BKUPDIR/tag-scripts-4.zip $BKUPDIR/tag-scripts-5.zip
   mv --force              $BKUPDIR/tag-scripts-3.zip $BKUPDIR/tag-scripts-4.zip
   mv --force              $BKUPDIR/tag-scripts-2.zip $BKUPDIR/tag-scripts-3.zip
   mv --force              $BKUPDIR/tag-scripts-1.zip $BKUPDIR/tag-scripts-2.zip
   cp --remove-destination $BKUPDIR/tag-scripts-0.zip $BKUPDIR/tag-scripts-1.zip

   mv --force              $BKUPDIR/tag-gimp-xcf-5.zip $BKUPDIR/tag-gimp-xcf-6.zip
   mv --force              $BKUPDIR/tag-gimp-xcf-4.zip $BKUPDIR/tag-gimp-xcf-5.zip
   mv --force              $BKUPDIR/tag-gimp-xcf-3.zip $BKUPDIR/tag-gimp-xcf-4.zip
   mv --force              $BKUPDIR/tag-gimp-xcf-2.zip $BKUPDIR/tag-gimp-xcf-3.zip
   mv --force              $BKUPDIR/tag-gimp-xcf-1.zip $BKUPDIR/tag-gimp-xcf-2.zip
   cp --remove-destination $BKUPDIR/tag-gimp-xcf-0.zip $BKUPDIR/tag-gimp-xcf-1.zip

   mv --force              $BKUPDIR/tag-java-5.zip $BKUPDIR/tag-java-6.zip
   mv --force              $BKUPDIR/tag-java-4.zip $BKUPDIR/tag-java-5.zip
   mv --force              $BKUPDIR/tag-java-3.zip $BKUPDIR/tag-java-4.zip
   mv --force              $BKUPDIR/tag-java-2.zip $BKUPDIR/tag-java-3.zip
   mv --force              $BKUPDIR/tag-java-1.zip $BKUPDIR/tag-java-2.zip
   cp --remove-destination $BKUPDIR/tag-java-0.zip $BKUPDIR/tag-java-1.zip

   echo "Backup rotate finished, start backing up into zip files"
   find -L /home/tore/Documents -name "*.txt" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.doc" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.dvi" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.xls" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.sdw" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.sxw" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.rtf" -print | zip -u $BKUPDIR/tag-docs-0.zip -@
   find -L /home/tore/Documents -name "*.htm" -print | zip -u $BKUPDIR/tag-html-0.zip -@
   find -L /home/tore/Documents -name "*.html" -print | zip -u $BKUPDIR/tag-html-0.zip -@
   find -L /home/tore/Documents -name "*.css*" -print | zip -u $BKUPDIR/tag-html-0.zip -@
   find -L /home/tore/scripts -name "*" -print | zip -u $BKUPDIR/tag-scripts-0.zip -@
   find -L /home/tore/myjava -name "*.java" -print | zip -u $BKUPDIR/tag-java-0.zip -@
   find -L /home/tore/pictures -name "*.xcf" -print | zip -u $BKUPDIR/tag-gimp-xcf-0.zip -@

else
   echo "WARN backup dir not available, no backup will be done"
fi

Environment:

Probably any Linux system.


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell