#!/bin/bash
#
-# WizBackup Driver 1.0
-# Copyleft 2011 Bernie Innocenti <bernie@codewiz.org>
+# WizBackup Driver 1.1
+# Copyright 2011 Bernie Innocenti <bernie@codewiz.org>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License,
+# or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License,
-# or (at your option) any later version.
-if [ $# -lt 1 ]
+if [ $# -lt 2 ]
then
- echo "Usage: $0 [MACHINE-TAB]"
+ echo "Usage: $0 [MACHINE-TAB] [DEST]"
echo
echo "The MACHINE-TAB file contains hostnames of machines to be backed up, one per line."
echo "Empty lines and lines starting with '#' are ignored."
fi
HOSTS=`cat $1 | egrep -v '^#|^ *$'`
+DEST="$2"
LOGGROUP=`basename $1`
LOGDIR=/var/log/wizbackup
LOCKDIR=/var/lock/wizbackup
-EXCLUDES_DIR=/root/rsync-backups/exclude
-DEST=/backup
+EXCLUDES_DIR="$DEST/EXCLUDE"
today=`date +"%Y%m%d"`
mkdir -p $LOGDIR
mkdir -p $LOCKDIR
if [ "`tty`" = "not a tty" ]; then
- OUTLOGFILE="$LOGDIR/$LOGGROUP-$today.log"
+ LOGFILE="$LOGDIR/$LOGGROUP-$today.log"
else
LOGFILE=/dev/stdout
fi
for host in $HOSTS; do
- opts="--exclude-from $EXCLUDES_DIR/ALWAYS"
- if [ -f "$EXCLUDES_DIR/$host" ]; then
- opts="$opts --exclude-from $EXCLUDES_DIR/$host"
- fi
+ opts=""
+ for file in "$EXCLUDES_DIR/ALWAYS" "$EXCLUDES_DIR/$host"; do
+ [ -f $file ] && opts="$opts --exclude-from $file"
+ done
start_time=$(date +%s)
- flock $LOCKDIR/$host wizbackup "$host:/" "$DEST/$host/" $opts >>$LOGFILE 2>&1
+ flock -n $LOCKDIR/$host nice ionice -c2 -n6 \
+ wizbackup "$host:/" "$DEST/$host/" $opts >>$LOGFILE 2>&1
result=$?
end_time=$(date +%s)
- report="$(date):$host:$(($end_time-$start_time)):$result"
+ report="$(date +%s):$host:$(($end_time-$start_time)):$result"
echo $report >>$LOGDIR/$LOGGROUP-report-$today.log
[ $result != 0 ] && echo "$report" >>$LOGDIR/$LOGGROUP-fail-$today.log
done