Skip to content
Snippets Groups Projects
Commit 0e1bd269 authored by micah's avatar micah :speech_balloon:
Browse files

Added remote destination directory checking and auto creation if doesn't exist.

Also fixed a bug in the rdiff handler that caused a unary operation error if
the variable wasn't fixed
parent 5f6dc7d1
No related branches found
No related tags found
No related merge requests found
......@@ -8,8 +8,10 @@ version 0.9.1 -- unreleased
made ninjahelper create files with mode 600 rather than 000
changed subversion handler to use svnadmin hotcopy instead of
the unsupported hot-copy.py script, which was moved in Debian
update rdiff ninjahelper to detect and auto-install rdiff-backup
on the remote machine if possible
update rdiff ninjahelper
now detects and auto-install rdiff-backup on the remote
machine if possible, also tests the remote backup directory
and offers to create it if it doesn't exist
version 0.9 -- October 19 2005
*** IMPORTANT CHANGE, UPGRADE AT ONCE ***
......
......@@ -104,7 +104,7 @@ then
fi
# check the connection at the source and destination
if [ "$testconnect" == "yes" -o $test ]; then
if [ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]; then
test_connection $sourceuser $sourcehost
test_connection $destuser $desthost
fi
......
HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
declare -a rdiff_includes
......@@ -112,12 +111,58 @@ do_ssh_con() {
echo "Hit return to continue."
read
fi
do_rdiff_con
# test to see if the remote rdiff backup directory exists and is writable
echo "Testing to see if remote rdiff backup directory exists and is writable"
ssh $rdiff_user@$rdiff_host "test -d ${rdiff_directory}"
if [ $? -eq 0 ]
then
ssh $rdiff_user@$rdiff_host "test -w $rdiff_directory"
if [ $? -ne 0 ]
then
msgBox "destination directory is not writable!" "The remote destination directory is not writable by the user you specified. Please fix the permissions on the directory and then try again."
remote_status=1
else
remote_status=0
fi
else
booleanBox "Remote directory does not exist" "The destination backup directory does not exist, do you want me to create it for you?"
if [ $? = 0 ]
then
ssh $rdiff_user@$rdiff_host "mkdir -p ${rdiff_directory}"
result=$?
echo "Hit return to continue."
read
case $result in
0)
msgBox "rdiff action wizard: success" "Creation of the remote destination directory was a success!"
remote_status=0
;;
1)
msgBox "rdiff action wizard: error" "Connected successfully to $rdiff_user@$rdiff_host, but was unable to create the destination directory, check the directory permissions."
remote_status=1
;;
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."
remote_status=1
;;
*)
msgBox "rdiff action wizard: error" "Unexpected error."
remote_status=1
;;
esac
return
fi
fi
if [ $remote_status -ne 1 ]
then
do_rdiff_con
fi
}
do_rdiff_con() {
echo "Testing to make sure destination has rdiff-backup installed and is compatible."
remote_result=`rdiff-backup --test-server $rdiff_user@$rdiff_host::/ 2>&1 >&-`
remote_result=`/usr/bin/rdiff-backup --test-server $rdiff_user@$rdiff_host::/ 2>&1 >&-`
if [ $? -ne 0 ]
then
echo $remote_result | grep -q "command not found"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment