Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
backupninja
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
lyz
backupninja
Commits
918ac576
Commit
918ac576
authored
19 years ago
by
micah
Browse files
Options
Downloads
Patches
Plain Diff
r241@um: micah | 2005-12-27 15:21:17 -0500
Updated rdiff-backup to do vserver selection using lib/vservers
parent
bdc92b87
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
ChangeLog
+2
-0
2 additions, 0 deletions
ChangeLog
handlers/rdiff.helper
+182
-58
182 additions, 58 deletions
handlers/rdiff.helper
with
184 additions
and
58 deletions
ChangeLog
+
2
−
0
View file @
918ac576
...
@@ -19,6 +19,8 @@ version 0.9.2 -- unreleased
...
@@ -19,6 +19,8 @@ version 0.9.2 -- unreleased
added duplicity ninjahelper, including:
added duplicity ninjahelper, including:
a nice menu to choose the Vservers to backup (thanks to
a nice menu to choose the Vservers to backup (thanks to
lib/vserver)
lib/vserver)
updated rdiff ninjahelper to include Vserver selection (thanks to
lib/vserver)
added man/ninjahelper.1 man page
added man/ninjahelper.1 man page
duplicity handler: now possible to use different keys to encrypt and
duplicity handler: now possible to use different keys to encrypt and
sign
sign
...
...
This diff is collapsed.
Click to expand it.
handlers/rdiff.helper
+
182
−
58
View file @
918ac576
...
@@ -3,65 +3,139 @@ HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
...
@@ -3,65 +3,139 @@ HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
declare -a rdiff_includes
declare -a rdiff_includes
declare -a rdiff_excludes
declare -a rdiff_excludes
do_rdiff_dest() {
# FUNCTIONS
set -o noglob
formBegin "$rdiff_title"
formItem "keep" "$rdiff_keep"
formItem "dest_directory" "$rdiff_directory"
formItem "dest_host" "$rdiff_host"
formItem "dest_user" "$rdiff_user"
formDisplay
[ $? = 0 ] || return
IFS=$''
replyconverted=`echo $REPLY | tr '\n' :`
IFS=$':'
thereply=($replyconverted)
IFS=$' \t\n'
rdiff_keep=${thereply[0]}
rdiff_directory=${thereply[1]}
rdiff_host=${thereply[2]}
rdiff_user=${thereply[3]}
_dest_done="(DONE)"
do_rdiff_host_includes() {
setDefault conn
set -o noglob
set +o noglob
# choose the files to backup
REPLY=
while [ -z "$REPLY" ]
do
formBegin "$rdiff_title - host system: includes"
for ((i=0; i < ${#rdiff_includes[@]} ; i++))
do
formItem include ${rdiff_includes[$i]}
done
formItem include
formItem include
formItem include
formDisplay
[ $? = 0 ] || return
unset rdiff_includes
rdiff_includes="$REPLY"
done
set +o noglob
}
}
do_rdiff_src() {
do_rdiff_vserver() {
#echo ${rdiff_includes[@]}
# choose the vservers to backup (into $selected_vservers)
set -o noglob
choose_one_or_more_vservers "$rdiff_title"
formBegin "$rdiff_title: includes"
[ $? = 0 ] || return 1
for ((i=0; i < ${#rdiff_includes[@]} ; i++)); do
formItem include ${rdiff_includes[$i]}
done
formItem include
formItem include
formItem include
formDisplay
[ $? = 0 ] || return
unset rdiff_includes
set -o noglob
rdiff_includes=($REPLY)
# choose the files to backup
REPLY=
formBegin "$rdiff_title: excludes"
while [ -z "$REPLY" ]; do
for ((i=0; i < ${#rdiff_excludes[@]} ; i++)); do
formBegin "$rdiff_title - vsincludes (backup these directories from every vserver)"
[ -z "$rdiff_vsincludes" ] && rdiff_vsincludes="$rdiff_default_includes"
for i in $rdiff_vsincludes; do
formItem include "$i"
done
formItem include ""
formItem include ""
formItem include ""
formDisplay
[ $? = 0 ] || return 1
rdiff_vsincludes="$REPLY"
done
set +o noglob
}
do_rdiff_excludes() {
set -o noglob
formBegin "$rdiff_title: excludes"
for ((i=0; i < ${#rdiff_excludes[@]} ; i++))
do
formItem exclude ${rdiff_excludes[$i]}
formItem exclude ${rdiff_excludes[$i]}
done
done
formItem exclude
formItem exclude
formItem exclude
formDisplay
formItem exclude
[ $? = 0 ] || return
formDisplay
[ $? = 0 ] || return
unset rdiff_excludes
rdiff_excludes="$REPLY"
set +o noglob
}
unset rdiff_excludes
do_rdiff_src() {
rdiff_excludes=($REPLY)
choose_host_or_vservers_or_both "$rdiff_title"
[ $? = 0 ] || return 1
case $host_or_vservers in
'host')
do_rdiff_host_includes
[ $? = 0 ] || return 1
;;
'vservers')
do_rdiff_vserver
[ $? = 0 ] || return 1
;;
'both')
do_rdiff_host_includes
[ $? = 0 ] || return 1
do_rdiff_vserver
[ $? = 0 ] || return 1
;;
*)
return 1
;;
esac
do_rdiff_excludes
[ $? = 0 ] || return 1
_src_done="(DONE)"
setDefault dest
}
do_rdiff_dest() {
local replyconverted
local thereply
_src_done="(DONE)"
set -o noglob
setDefault dest
REPLY=
while [ -z "$REPLY" -o -z "$rdiff_directory" -o -z "$rdiff_host" -o -z "$rdiff_user" ]
do
formBegin "$rdiff_title - destination: last three items are required"
formItem "keep" "$rdiff_keep"
formItem "dest_directory" "$rdiff_directory"
formItem "dest_host" "$rdiff_host"
formItem "dest_user" "$rdiff_user"
formDisplay
[ $? = 0 ] || return
IFS=$''
replyconverted=`echo $REPLY | tr '\n' :`
IFS=$':'
thereply=($replyconverted)
IFS=$' \t\n'
rdiff_keep=${thereply[0]}
rdiff_directory=${thereply[1]}
rdiff_host=${thereply[2]}
rdiff_user=${thereply[3]}
done
set +o noglob
set +o noglob
_dest_done="(DONE)"
setDefault conn
}
}
do_rdiff_ssh_con() {
do_rdiff_ssh_con() {
IFS=$' \t\n'
IFS=$' \t\n'
if [ "$_dest_done" = "" ]; then
if [ "$_dest_done" = "" ]; then
...
@@ -232,15 +306,60 @@ do_rdiff_finish() {
...
@@ -232,15 +306,60 @@ do_rdiff_finish() {
type = local
type = local
keep = $rdiff_keep
keep = $rdiff_keep
EOF
EOF
set -o noglob
for ((i=0; i < ${#rdiff_includes[@]} ; i++)); do
if [ "$host_or_vservers" == host -o "$host_or_vservers" == both ]
echo "include = ${rdiff_includes[$i]}" >> $next_filename
then
done
set -o noglob
for ((i=0; i < ${#rdiff_excludes[@]} ; i++)); do
echo exclude = ${rdiff_excludes[$i]} >> $next_filename
for ((i=0; i < ${#rdiff_includes[@]} ; i++))
done
do
set +o noglob
echo "include = ${rdiff_includes[$i]}" >> $next_filename
cat >> $next_filename <<EOF
done
set +o noglob
fi
if [ "$host_or_vservers" == vservers -o "$host_or_vservers" == both ]
then
cat >> $next_filename <<EOF
#
# If vservers = yes in /etc/backupninja.conf then the following variables can
# be used:
# vsnames = all | <vserver1> <vserver2> ... (default = all)
# vsinclude = <path>
# vsinclude = <path>
# ...
# Any path specified in vsinclude is added to the include list for each vserver
# listed in vsnames (or all if vsnames = all).
#
# For example, vsinclude = /home will backup the /home partition in every
# vserver listed in vsnames. If you have vsnames = "foo bar baz", this
# vsinclude will add to the include list /vservers/foo/home,
# /vservers/bar/home and /vservers/baz/home.
# Vserver paths are derived from $VROOTDIR.
EOF
set -o noglob
echo -e "vsnames = \"$selected_vservers\"\n" >> $next_filename
for i in $rdiff_vsincludes; do
echo "vsinclude = $i" >> $next_filename
done
set +o noglob
fi
# excludes
for ((i=0; i < ${#rdiff_excludes[@]} ; i++))
do
echo exclude = ${rdiff_excludes[$i]} >> $next_filename
done
set +o noglob
cat >> $next_filename <<EOF
######################################################
## destination section
## (where the files are copied to)
[dest]
[dest]
type = remote
type = remote
...
@@ -248,6 +367,7 @@ directory = $rdiff_directory
...
@@ -248,6 +367,7 @@ directory = $rdiff_directory
host = $rdiff_host
host = $rdiff_host
user = $rdiff_user
user = $rdiff_user
EOF
EOF
chmod 600 $next_filename
chmod 600 $next_filename
}
}
...
@@ -297,10 +417,14 @@ rdiff_wizard() {
...
@@ -297,10 +417,14 @@ rdiff_wizard() {
rdiff_directory=/backup/`hostname`
rdiff_directory=/backup/`hostname`
rdiff_user=
rdiff_user=
rdiff_host=
rdiff_host=
# Global variables whose '*' shall not be expanded
set -o noglob
set -o noglob
rdiff_includes=(/var/spool/cron/crontabs /var/backups /etc /root /home /usr/local/*bin /var/lib/dpkg/status*)
rdiff_includes=(/var/spool/cron/crontabs /var/backups /etc /root /home /usr/local/*bin /var/lib/dpkg/status*)
rdiff_excludes=(/home/*/.gnupg)
rdiff_excludes=(/home/*/.gnupg)
rdiff_vsincludes=
set +o noglob
set +o noglob
rdiff_main_menu
rdiff_main_menu
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment