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
|
made ninjahelper create files with mode 600 rather than 000
|
||||||
changed subversion handler to use svnadmin hotcopy instead of
|
changed subversion handler to use svnadmin hotcopy instead of
|
||||||
the unsupported hot-copy.py script, which was moved in Debian
|
the unsupported hot-copy.py script, which was moved in Debian
|
||||||
update rdiff ninjahelper to detect and auto-install rdiff-backup
|
update rdiff ninjahelper
|
||||||
on the remote machine if possible
|
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
|
version 0.9 -- October 19 2005
|
||||||
*** IMPORTANT CHANGE, UPGRADE AT ONCE ***
|
*** IMPORTANT CHANGE, UPGRADE AT ONCE ***
|
||||||
|
@ -104,7 +104,7 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# check the connection at the source and destination
|
# 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 $sourceuser $sourcehost
|
||||||
test_connection $destuser $desthost
|
test_connection $destuser $desthost
|
||||||
fi
|
fi
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
|
HELPERS="$HELPERS rdiff:incremental_remote_filesystem_backup"
|
||||||
|
|
||||||
declare -a rdiff_includes
|
declare -a rdiff_includes
|
||||||
@ -112,12 +111,58 @@ do_ssh_con() {
|
|||||||
echo "Hit return to continue."
|
echo "Hit return to continue."
|
||||||
read
|
read
|
||||||
fi
|
fi
|
||||||
|
# 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
|
do_rdiff_con
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_rdiff_con() {
|
do_rdiff_con() {
|
||||||
echo "Testing to make sure destination has rdiff-backup installed and is compatible."
|
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 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
then
|
||||||
echo $remote_result | grep -q "command not found"
|
echo $remote_result | grep -q "command not found"
|
||||||
|
Loading…
Reference in New Issue
Block a user