mirror of
https://0xacab.org/liberate/backupninja.git
synced 2024-11-23 11:13:18 +01:00
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
This commit is contained in:
parent
5f6dc7d1b9
commit
0e1bd26988
@ -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
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
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"
|
||||
|
Loading…
Reference in New Issue
Block a user