projects
/
matthijs
/
upstream
/
backupninja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tar: Support running on multiple backends.
[matthijs/upstream/backupninja.git]
/
handlers
/
tar.in
diff --git
a/handlers/tar.in
b/handlers/tar.in
index 0a762cebcccbaab2174d7a822284d4583ecf5b08..da8125fcc8db9eb05e4dcbe737447b900c8c59ba 100644
(file)
--- a/
handlers/tar.in
+++ b/
handlers/tar.in
@@
-1,9
+1,8
@@
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
+# vim: set filetype=sh sw=3 sts=3 expandtab autoindent:
#
# tar handler script for backupninja
#
# tar handler script for backupninja
-getconf backupname `hostname --fqdn`
-getconf backupdir /var/backups/`hostname --fqdn`
getconf compress bzip
getconf includes "/etc /home /usr/local"
getconf excludes "/tmp /proc /dev /sys /net /misc /media /srv /selinux"
getconf compress bzip
getconf includes "/etc /home /usr/local"
getconf excludes "/tmp /proc /dev /sys /net /misc /media /srv /selinux"
@@
-19,61
+18,75
@@
then
warning "vservers enabled, but tar does not support it!"
fi
warning "vservers enabled, but tar does not support it!"
fi
-if [ ! -d "$backupdir" ]
-then
- mkdir -p "$backupdir" || fatal "Can not make directory $backupdir"
-fi
+function make_backup () {
+ getconf backupdir /var/backups/`hostname --fqdn`
+ backupdir=`interpolate "$backupdir"`
+ getconf backupname `hostname --fqdn`
+ backupname=`interpolate "$backupname"`
-
if [ ! -w
"$backupdir" ]
-then
-
fatal "Directory $backupdir is not writable
"
-fi
+
if [ ! -d
"$backupdir" ]
+
then
+
mkdir -p "$backupdir" || fatal "Can not make directory $backupdir
"
+
fi
-## DO IT #################################################
-#
-# here we grab a list of the packages installed and removed.
-#
+ if [ ! -w "$backupdir" ]
+ then
+ fatal "Directory $backupdir is not writable"
+ fi
+
+ ## DO IT #################################################
+ #
+ # here we grab a list of the packages installed and removed.
+ #
-case $compress in
- "compress")
- compress_option="-Z"
- EXTENSION="tar.compress"
- ;;
- "gzip")
- compress_option="-z"
- EXTENSION="tgz"
- ;;
- "bzip")
- compress_option="-j"
- EXTENSION="tar.bz2"
- ;;
- "none")
- compress_option=""
- ;;
- *)
- warning "Unknown compress filter ($tar_compress)"
- compress_option=""
- EXTENSION="tgz"
- ;;
-esac
+
case $compress in
+
"compress")
+
compress_option="-Z"
+
EXTENSION="tar.compress"
+
;;
+
"gzip")
+
compress_option="-z"
+
EXTENSION="tgz"
+
;;
+
"bzip")
+
compress_option="-j"
+
EXTENSION="tar.bz2"
+
;;
+
"none")
+
compress_option=""
+
;;
+
*)
+
warning "Unknown compress filter ($tar_compress)"
+
compress_option=""
+
EXTENSION="tgz"
+
;;
+
esac
-exclude_options=""
-for i in $excludes
-do
-
exclude_options="$exclude_options --exclude
$i"
-done
+
exclude_options=""
+
for i in $excludes
+
do
+
exclude_options="$exclude_options --exclude $root
$i"
+
done
-debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \
- -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
- $includes
+ include_options=""
+ for i in $includes
+ do
+ include_options="$include_options $root$i"
+ done
-$TAR -c -p -v $compress_option $exclude_options \
- -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
- $includes \
- > "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.list \
- 2> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.err
+ debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \
+ -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
+ $include_options
-[ $? -ne 0 ] && fatal "Tar backup failed"
+ $TAR -c -p -v $compress_option $exclude_options \
+ -f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
+ $include_options \
+ > "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.list \
+ 2> "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`.err
+ [ $? -ne 0 ] && fatal "Tar backup failed"
+}
+init_source_hosts
+run_for_source_hosts make_backup