Newer
Older
do_rdiff_dest() {
formItem "keep" "$rdiff_keep"
formItem "dest_directory" "$rdiff_directory"
formItem "dest_host" "$rdiff_host"
formItem "dest_user" "$rdiff_user"
rdiff_keep=$1
rdiff_directory=$2
rdiff_host=$3
rdiff_user=$4
_dest_done="(DONE)"
setDefault conn
}
do_rdiff_src() {
startForm "rdiff action wizard: includes"
formItem include /var/spool/cron/crontabs
formItem include /var/backups
formItem include /etc
formItem include /root
formItem include /home
formItem include '/usr/local/*bin'
formItem include '/var/lib/dpkg/status*'
formItem include
formItem include
formItem include
displayForm
[ $? = 1 ] && return;
rdiff_includes=
[ "$i" != "" ] && rdiff_includes="$rdiff_includes\ninclude = $i"
formItem exclude
formItem exclude
displayForm
[ $? = 1 ] && return;
rdiff_excludes=
[ "$i" != "" ] && rdiff_excludes="$rdiff_excludes\nexclude = $i"
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
_src_done="(DONE)"
setDefault dest
}
do_rdiff_con() {
if [ "$_dest_done" = "" ]; then
msgBox "rdiff action wizard: error" "You must first configure the destination"
return
else
booleanBox "rdiff action wizard" "This step will create a ssh key for the local root user with no passphrase (if one does not already exist), and attempt to copy root's public ssh key to authorized_keys file of $rdiff_user@$rdiff_host. This will allow the local root to make unattended backups to $rdiff_user@$rdiff_host. Are you sure you want to continue?"
[ $? = 1 ] && return
fi
if [ ! -f /root/.ssh/id_dsa.pub -a ! -f /root/.ssh/id_rsa.pub ]; then
echo "Creating local root's ssh key"
ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
echo "Done. hit return to continue"
read
fi
ssh -o PreferredAuthentications=publickey $rdiff_host -l $rdiff_user "exit" 2> /dev/null
if [ $? -ne 0 ]; then
echo "Copying root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host. Specify the password for user $rdiff_user@$rdiff_host."
ssh-copy-id -i /root/.ssh/id_[rd]sa.pub $rdiff_user@$rdiff_host
if [ $? -ne 0 ]; then
msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Make sure you have the username and password correct."
return
else
echo "Done. hit return to continue"
read
fi
else
echo "root@localhost is already in authorized_keys of $rdiff_user@$rdiff_host. hit return to continue"
read
fi
_con_done="(DONE)"
setDefault finish
}
do_rdiff_finish() {
get_next_filename $configdirectory/90.rdiff
cat > $next_filename <<EOF
# options = --force
# when = everyday at 02
keep = $rdiff_keep
echo -n -e "$rdiff_includes" >> $next_filename
echo -e "$rdiff_excludes" >> $next_filename
directory = $rdiff_directory
host = $rdiff_host
user = $rdiff_user
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
rdiff_main_menu() {
while true; do
srcitem="choose files to include & exclude $_src_done"
destitem="configure backup destination $_dest_done"
conitem="set up ssh keys and test remote connection $_con_done"
advitem="edit advanced settings $_adv_done"
menuBox "rdiff action wizard" "choose a step:" \
src "$srcitem" \
dest "$destitem" \
conn "$conitem" \
finish "finish and create config file"
[ $? = 1 ] && return;
result="$REPLY"
case "$result" in
"src") do_rdiff_src;;
"dest") do_rdiff_dest;;
"conn") do_rdiff_con;;
"adv") do_rdiff_adv;;
"finish")
if [[ "$_con_done$_dest_done$_src_done" != "(DONE)(DONE)(DONE)" ]]; then
msgBox "rdiff action wizard" "You cannot create the configuration file until the other steps are completed."
else
do_rdiff_finish
return
fi
;;
esac
done
}
rdiff_wizard() {
# require_packages rdiff-backup
_src_done=
_dest_done=
_con_done=
_adv_done=
rdiff_keep=60D
rdiff_directory=/backup/`hostname`
rdiff_user=
rdiff_host=
rdiff_main_menu
}