and maildir handler for creating safe temp files.
+
+#
+# create a temporary file in a secure way.
+#
+function maketemp() {
+ if [ -x /bin/mktemp ]
+ then
+ local tempfile=`mktemp /tmp/$1.XXXXXXXX`
+ else
+ DATE=`date`
+ sectmp=`echo $DATE | /usr/bin/md5sum | cut -d- -f1`
+ local tempfile=/tmp/$1.$sectmp
+ fi
+ echo $tempfile
+}
+
+
#
# sets a global var with name equal to $1
# to the value of the configuration parameter $1
#
# sets a global var with name equal to $1
# to the value of the configuration parameter $1
let "actions_run += 1"
# call the handler:
let "actions_run += 1"
# call the handler:
- if [ -x /bin/mktemp ]
- then
- local bufferfile=`mktemp /tmp/backupninja.buffer.XXXXXXXX`
- else
- DATE=`date`
- sectmp=`echo $DATE | /usr/bin/md5sum | cut -d- -f1`
- local bufferfile=/tmp/backupninja.buffer.$sectmp
- fi
+ local bufferfile=`maketemp backupninja.buffer`
echo "" > $bufferfile
echo_debug_msg=1
(
echo "" > $bufferfile
echo_debug_msg=1
(
+version 0.9 -- unreleased
removed erroneous magic file marker in pgsql handler
fixed insecure temporary file creation
fixed incorrect find positional
removed erroneous magic file marker in pgsql handler
fixed insecure temporary file creation
fixed incorrect find positional
version 0.8 -- September 15 2005
added pgsql (PostgreSQL) handler, with vservers support.
added vservers support to duplicity handler
version 0.8 -- September 15 2005
added pgsql (PostgreSQL) handler, with vservers support.
added vservers support to duplicity handler
# weekly.2
# monthly.1
# if keepdaily is 3, keepweekly is 2, and keepmonthly is 1.
# weekly.2
# monthly.1
# if keepdaily is 3, keepweekly is 2, and keepmonthly is 1.
+#
+# The basic algorithm is to rsync each maildir individually,
+# and to use hard links for retaining historical data.
+#
+# We rsync each maildir individually because it becomes very
+# unweldy to start a single rsync of many hundreds of thousands
+# of files.
+#
+# For the backup rotation to work, destuser must be able to run
+# arbitrary bash commands on the desthost.
+#
##############################################################
getconf rotate yes
##############################################################
getconf rotate yes
# and add new ones which have just been created.
function do_remove() {
# and add new ones which have just been created.
function do_remove() {
- local tmp1=/tmp/maildirtmpfile$$
- local tmp2=/tmp/maildirtmpfile$$
+ local tmp1=`maketemp maildir-tmp-file`
+ local tmp2=`maketemp maildir-tmp-file`
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z; do
ls -1 "$srcdir/$i" | sort > $tmp1
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z; do
ls -1 "$srcdir/$i" | sort > $tmp1