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 ***
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
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"