#!/bin/sh # A FreeBSD shell script to dump Filesystem with full and incremental backups to tape device connected to server. # Tested on FreeBSD 6.x and 7.x - 32 bit and 64 bit systems. # May work on OpenBSD / NetBSD. # ------------------------------------------------------------------------- # Copyright (c) 2007 nixCraft project <http://www.cyberciti.biz/fb/> # This script is licensed under GNU GPL version 2.0 or above # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ---------------------------------------------------------------------- LOGGER=/usr/bin/logger DUMP=/sbin/dump # FSL="/dev/aacd0s1a /dev/aacd0s1g" FSL="/usr /var" NOW=$(date +"%a") LOGFILE="/var/log/dumps/$NOW.dump.log" TAPE="/dev/sa0" mk_auto_dump(){ local fs=$1 local level=$2 local tape="$TAPE" local opts="" opts="-${level}uanL -f ${tape}" # run backup $DUMP ${opts} $fs if [ "$?" != "0" ];then $LOGGER "$DUMP $fs FAILED!" echo "*** DUMP COMMAND FAILED - $DUMP ${opts} $fs. ***" else $LOGGER "$DUMP $fs DONE!" fi } dump_all_fs(){ local level=$1 for f in $FSL do mk_auto_dump $f $level done } init_backup(){ local d=$(dirname $LOGFILE) [ ! -d ${d} ] && mkdir -p ${d} } init_backup case $NOW in Mon) dump_all_fs 0;; Tue) dump_all_fs 1;; Wed) dump_all_fs 2;; Thu) dump_all_fs 3;; Fri) dump_all_fs 4;; Sat) dump_all_fs 5;; Sun) dump_all_fs 6;; *) ;; esac > $LOGFILE 2>&1
How do I run this script?
Download this script and unzip in /root. Open script and customize tape device ($TAPE variable) and file systems ($FSL). Operator can run this script from a shell prompt:
# /root/tapebackup.sh
Or via a cron job:
@midnight /root/tapebackup.sh
4000+ howtos and counting! If you enjoyed this article, join 45000+ others and get free email updates!
Click here to subscribe via email.
Click here to subscribe via email.
- Download Script
- Email this to a friend
- Rss Feed
- Last Updated: 07/15/09





