created
authorElijah Saxon <elijah@riseup.net>
Wed, 19 Jan 2005 19:37:20 +0000 (19:37 +0000)
committerElijah Saxon <elijah@riseup.net>
Wed, 19 Jan 2005 19:37:20 +0000 (19:37 +0000)
handlers/dup [new file with mode: 0644]

diff --git a/handlers/dup b/handlers/dup
new file mode 100644 (file)
index 0000000..955605d
--- /dev/null
@@ -0,0 +1,72 @@
+#
+# duplicity script for backupninja
+# requires duplicity
+#
+
+getconf password
+getconf options
+getconf keep 60
+getconf include
+getconf exclude
+getconf desthost
+getconf destdir
+getconf destuser
+destdir=${destdir%/}
+
+[ "$destdir" != "" ] || fatal "Destination directory not set"
+[ "$include" != "" ] || fatal "No source includes specified"
+[ "$password" != "" ] || fatal "No password specified"
+
+# see if we can login
+debug "ssh -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1'"
+if [ ! $test ]; then
+       result=`ssh -o PasswordAuthentication=no $desthost -l $destuser 'echo -n 1' 2>&1`
+       if [ "$result" != "1" ]; then
+               fatal "Can't connect to $desthost as $destuser."
+       fi
+fi
+
+if [ "`echo $keep | tr -d 0-9`" == "" ]; then
+       keep="${keep}D"
+fi
+
+execstr_serverpart="scp://$destuser@$desthost/$destdir"
+execstr_clientpart="/"
+execstr="$options --no-print-statistics --remove-older-than $keep "
+
+# excludes
+for i in $exclude; do
+       str="${i//__star__/*}"
+       execstr="${execstr}--exclude $str "
+done
+       
+# includes 
+for i in $include; do
+       str="${i//__star__/*}"
+       execstr="${execstr}--include $str "
+done
+
+# exclude everything else, start with root
+#execstr="${execstr}--exclude '**' / "
+               
+# include client-part and server-part
+#execstr="$execstr $execstr_serverpart"
+
+execstr=${execstr//\\*/\\\\\\*}
+
+debug "duplicity $execstr --exclude '**' / $execstr_serverpart"
+if [ ! $test ]; then
+       PASSPHRASE=$password
+       export PASSPHRASE
+       output=`duplicity $execstr --exclude '**' / $execstr_serverpart 2>&1`
+       code=$?
+       if [ "$code" == "0" ]; then
+               debug $output
+               info "Duplicity finished successfully."
+       else
+               warning $output
+               warning "Duplicity failed."
+       fi
+fi     
+
+return 0