HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup" declare -a rdiff_includes declare -a rdiff_excludes do_rdiff_dest() { set -o noglob formBegin "rdiff action wizard" formItem "keep" "$rdiff_keep" formItem "dest_directory" "$rdiff_directory" formItem "dest_host" "$rdiff_host" formItem "dest_user" "$rdiff_user" formDisplay [ $? = 1 ] && 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)" setDefault conn set +o noglob } do_rdiff_src() { #echo ${rdiff_includes[@]} set -o noglob formBegin "rdiff action wizard: includes" for ((i=0; i < ${#rdiff_includes[@]} ; i++)); do formItem include ${rdiff_includes[$i]} done formItem include formItem include formItem include formDisplay [ $? = 1 ] && return; unset rdiff_includes rdiff_includes=($REPLY) formBegin "rdiff action wizard: excludes" for ((i=0; i < ${#rdiff_excludes[@]} ; i++)); do formItem exclude ${rdiff_excludes[$i]} done formItem exclude formItem exclude formDisplay [ $? = 1 ] && return; unset rdiff_excludes rdiff_excludes=($REPLY) _src_done="(DONE)" setDefault dest set +o noglob } do_rdiff_con() { IFS=$' \t\n' if [ "$_dest_done" = "" ]; then msgBox "rdiff action wizard: error" "You must first configure the destination." return elif [ "$rdiff_user" = "" ]; then msgBox "rdiff action wizard: error" "You must first configure the destination user." return elif [ "$rdiff_host" = "" ]; then msgBox "rdiff action wizard: error" "You must first configure the destination host." 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. When prompted, 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 echo "FAILED: Couldn't copy root's public ssh key to authorized_keys of $rdiff_user@$rdiff_host." ssh $rdiff_user@$rdiff_host 'test -w .ssh || test -w .' result=$? echo "Hit return to continue." read case $result in 0 ) msgBox "rdiff action wizard: error" "Directories are writable: Probably just a typo the first time." ;; 1 ) msgBox "rdiff action wizard: error" "Connected successfully to $rdiff_user@$rdiff_host, but unable to write. Check ownership and modes of ~$rdiff_user on $rdiff_host." ;; 255 ) msgBox "rdiff action wizard: error" "Failed to connect to $rdiff_user@$rdiff_host. Check hostname, username, and password. Also, make sure sshd is running on the destination host." ;; * ) msgBox "rdiff action wizard: error" "Unexpected error." ;; esac 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 <> $next_filename <