commit 27a8bf2830d46f32fb9c4f3ae1fcf5354a39483b
parent 3a8c90ee9b7e24636d49141966f7fdc2946525a7
Author: Jaromil <jaromil@dyne.org>
Date: Wed, 27 Apr 2011 20:59:49 +0200
removed backup
was just an experiment and not interesting
users can better choose their own backup system
and be in complete control of the process
Diffstat:
M | src/tomb | | | 87 | ------------------------------------------------------------------------------- |
1 file changed, 0 insertions(+), 87 deletions(-)
diff --git a/src/tomb b/src/tomb
@@ -633,92 +633,6 @@ exec_safe_post_hooks() {
fi
}
-
-backup_tomb() { # FIXME - duplicity asks passwords too often
- # using duplicity
- which duplicity > /dev/null
- if [ $? != 0 ]; then
- error "duplicity not found, can't operate backup"
- return 1
- fi
- if [ -z $CMD3 ]; then
- error "backup command needs 2 arguments: tomb and destination url"
- error "please refer to tomb(1) and duplicity(1) manuals for more information"
- return 1
- fi
-
- # is it a tomb?
- get_arg_tomb ${CMD2}
- if [ $? != 0 ]; then
- error "there is no tomb to backup, operation aborted."
- return 1
- fi
-
- # is it a url?
- echo "${CMD3}" | grep -i -e '^.*:\/\/.*' 2>&1 > /dev/null
- if ! [ $? = 0 ]; then
- error "second argument is not a valid duplicity url."
- error "read the tomb(1) and duplicity(1) manual for more information"
- return 1
- fi
- bckurl=${CMD3}
-
- # is it ssh?
- protocol="`expr substr $bckurl 1 3`"
- act "backup over protocol $protocol"
- if [ "$protocol" = "ssh" ]; then
- act "ssh connection requires a password"
- FTP_PASSWORD="`exec_as_user ${TOMBEXEC} askpass $bckurl`"
- dupopts="--ssh-askpass"
- # TODO verify ssh access before duplicity does
- # since it blocks the thing retrying 5 times and such crap
- # i.e. try ssh true to sshurl="`echo $bckurl | sed -e 's/ssh:\/\///'`"
- # --no-print-statistics
- fi
-
- # duplicity works only on directories
- # so we create a directory in tmpfs and bind the tomb inside it
- # during backup the encrypted tomb will be exposed
- # TODO: check that the tomb is not mounted and, if mounted
- # remount it read-only so it doesn't gets modified during bck
- bckname=${tombname}.bck
- mkdir -p /dev/shm/${bckname}
- if [ $? != 0 ]; then
- error "cannot generate a temporary backup directory in /dev/shm, operation aborted."
- return 1
- fi
- bcktmpdir=/dev/shm/${bckname}
- # mmm, maybe we should mount our own tmpfs? we need root anyway for mount -o bind
- # if we reach to eliminate this mount trick and upload only one file with duplicity
- # then this function doesn't needs to be root to work.
- touch ${bcktmpdir}/${tombfile}
- mount -o bind ${tombdir}/${tombfile} ${bcktmpdir}/${tombfile}
- bcklast=`exec_as_user duplicity \
- ${(s: :)dupopts} \
- collection-status ${bckurl} \
- | awk '/^Last full backup date:/ { print $5 }'`
- # we detect if backup already exists or not so we can handle
- # password prompt (choosing a password for full, inserting for incr)
- if [ "$bcklast" = "none" ]; then
- notice "Creating a backup of tomb $tombname on url $bckurl"
- exec_as_user FTP_PASSWORD="$FTP_PASSWORD" duplicity ${(s: :)dupopts} \
- full ${bcktmpdir} ${bckurl}
- else
- notice "Updating a backup of tomb $tombname on url $bckurl"
- exec_as_user FTP_PASSWORD="$FTP_PASSWORD" duplicity ${(s: :)dupopts} \
- incr ${bcktmpdir} ${bckurl}
- fi
- unset FTP_PASSWORD
- if [ $? != 0 ]; then
- error "duplicity reported error, operation aborted"
- umount ${bcktmpdir}/${tombfile}
- return 1
- fi
- notice "Operation successful."
- umount ${bcktmpdir}/${tombfile}
- return 0
-}
-
umount_tomb() {
local tombs how_many_tombs
local pathmap mapper tombname tombmount loopdev
@@ -973,7 +887,6 @@ main () {
return 1
fi
decode_key ${CMD2} ;;
- backup) check_priv ; backup_tomb ${CMD2} ${CMD3} ;;
install) check_priv ; install_tomb ;;
askpass) ask_password $CMD2 ;;
status) tomb-status ;;