mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-10 04:42:31 +01:00
Added tar handler
This commit is contained in:
parent
ea111f2a5c
commit
d3875324de
@ -2,6 +2,7 @@ version 0.9.4 -- unreleased
|
||||
backupninja changes
|
||||
Recursively ignore subdirs in /etc/backup.d (Closes: #361102)
|
||||
handler changes
|
||||
Added tar handler
|
||||
mysql:
|
||||
. Fixed improper use of $vuserhome (Debian: #351083)
|
||||
. Fixed erroneous removal of tmpfile when it didn't exit
|
||||
|
79
handlers/tar
Normal file
79
handlers/tar
Normal file
@ -0,0 +1,79 @@
|
||||
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
|
||||
#
|
||||
# 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 TAR `which tar`
|
||||
getconf EXTENSION tar
|
||||
getconf DATE `which date`
|
||||
getconf DATEFORMAT "%Y.%m.%d-%H%M"
|
||||
|
||||
# See if vservers are configured
|
||||
if [ "$vservers" = "yes" ]
|
||||
then
|
||||
warning "vservers enabled, but tar does not support it!"
|
||||
fi
|
||||
|
||||
if [ ! -d "$backupdir" ]
|
||||
then
|
||||
mkdir -p "$backupdir" || fatal "Can not make directory $backupdir"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
exclude_options=""
|
||||
for i in $excludes
|
||||
do
|
||||
exclude_options="$exclude_options --exclude $i"
|
||||
done
|
||||
|
||||
debug "Running backup: " $TAR -c -p -v $compress_option $exclude_options \
|
||||
-f "$backupdir/$backupname-"`$DATE "+$DATEFORMAT"`".$EXTENSION" \
|
||||
$includes
|
||||
|
||||
$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
|
||||
|
||||
[ $? -ne 0 ] && fatal "Tar backup failed"
|
||||
|
||||
|
||||
|
94
handlers/tar.helper
Normal file
94
handlers/tar.helper
Normal file
@ -0,0 +1,94 @@
|
||||
# -*- mode: sh; sh-basic-offset: 3; indent-tabs-mode: nil; -*-
|
||||
|
||||
HELPERS="$HELPERS tar:tar_backup"
|
||||
|
||||
tar_wizard() {
|
||||
tar_title="Tar action wizard"
|
||||
|
||||
backupname=`hostname --fqdn`
|
||||
|
||||
inputBox "$tar_title" "When to run this action?" "everyday at 01"
|
||||
[ $? = 1 ] && return
|
||||
tar_when_run="when = $REPLY"
|
||||
|
||||
inputBox "$tar_title" "\"Name\" of backups" "$backupname"
|
||||
[ $? = 1 ] && return
|
||||
tar_backupname="backupname = $REPLY"
|
||||
backupname="$REPLY"
|
||||
|
||||
inputBox "$tar_title" "Directory where to store the backups" "/net/backups/$backupname"
|
||||
[ $? = 1 ] && return
|
||||
tar_backupdir="backupdir = $REPLY"
|
||||
|
||||
radioBox "$tar_title" "Compression" \
|
||||
"none" "do not filter trough" off \
|
||||
"compress" "filter trough compress" off \
|
||||
"gzip" "filter trough gzip" off \
|
||||
"bzip" "filter trough bzip" on
|
||||
[ $? = 1 ] && return;
|
||||
result="$REPLY"
|
||||
tar_compress="compress = $REPLY "
|
||||
|
||||
REPLY=
|
||||
while [ -z "$REPLY" ]; do
|
||||
formBegin "$tar_title: Includes"
|
||||
formItem "Include:" /etc
|
||||
formItem "Include:" /home
|
||||
formItem "Include:" /usr/local
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formItem "Include:"
|
||||
formDisplay
|
||||
[ $? = 0 ] || return 1
|
||||
tar_includes="includes = "
|
||||
for i in $REPLY; do
|
||||
[ -n "$i" ] && tar_includes="$tar_includes $i"
|
||||
done
|
||||
done
|
||||
|
||||
REPLY=
|
||||
while [ -z "$REPLY" ]; do
|
||||
formBegin "$tar_title: Excludes"
|
||||
formItem "Exclude:" /tmp
|
||||
formItem "Exclude:" /proc
|
||||
formItem "Exclude:" /sys
|
||||
formItem "Exclude:" /dev
|
||||
formItem "Exclude:" /srv
|
||||
formItem "Exclude:" /media
|
||||
formItem "Exclude:" /misc
|
||||
formItem "Exclude:" /net
|
||||
formItem "Exclude:" /selinux
|
||||
formItem "Exclude:"
|
||||
formItem "Exclude:"
|
||||
formDisplay
|
||||
[ $? = 0 ] || return 1
|
||||
tar_excludes="excludes = "
|
||||
for i in $REPLY; do
|
||||
[ -n "$i" ] && tar_excludes="$tar_excludes $i"
|
||||
done
|
||||
done
|
||||
|
||||
# Save the config
|
||||
get_next_filename $configdirectory/10.tar
|
||||
cat > $next_filename <<EOF
|
||||
$tar_when_run
|
||||
$tar_backupname
|
||||
$tar_backupdir
|
||||
$tar_compress
|
||||
$tar_includes
|
||||
$tar_excludes
|
||||
|
||||
# tar binary - have to be GNU tar
|
||||
#TAR=/bin/tar
|
||||
#DATE /bin/date
|
||||
#DATEFORMAT "%Y.%m.%d-%H%M"
|
||||
|
||||
EOF
|
||||
chmod 600 $next_filename
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user