Skip to content
Snippets Groups Projects
Commit 995e34e1 authored by elijah's avatar elijah
Browse files

created function maketemp, to be used by backupninja

and maildir handler for creating safe temp files.
parent ef4bbe3c
Branches
Tags
No related merge requests found
...@@ -131,6 +131,23 @@ function setsection() { ...@@ -131,6 +131,23 @@ function setsection() {
CURRENT_SECTION=$1 CURRENT_SECTION=$1
} }
#
# 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 # sets a global var with name equal to $1
# to the value of the configuration parameter $1 # to the value of the configuration parameter $1
...@@ -305,14 +322,7 @@ function process_action() { ...@@ -305,14 +322,7 @@ function process_action() {
let "actions_run += 1" let "actions_run += 1"
# call the handler: # call the handler:
if [ -x /bin/mktemp ] local bufferfile=`maketemp backupninja.buffer`
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
echo "" > $bufferfile echo "" > $bufferfile
echo_debug_msg=1 echo_debug_msg=1
( (
......
version 0.9 -- unreleased
removed erroneous magic file marker in pgsql handler removed erroneous magic file marker in pgsql handler
fixed insecure temporary file creation fixed insecure temporary file creation
fixed incorrect find positional fixed incorrect find positional
version 0.8 -- September 15 2005 version 0.8 -- September 15 2005
added pgsql (PostgreSQL) handler, with vservers support. added pgsql (PostgreSQL) handler, with vservers support.
added vservers support to duplicity handler added vservers support to duplicity handler
......
...@@ -13,6 +13,16 @@ ...@@ -13,6 +13,16 @@
# monthly.1 # monthly.1
# if keepdaily is 3, keepweekly is 2, and keepmonthly is 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
...@@ -101,8 +111,8 @@ $dir $destuser@$desthost:$destdir/$letter \ ...@@ -101,8 +111,8 @@ $dir $destuser@$desthost:$destdir/$letter \
# and add new ones which have just been created. # and add new ones which have just been created.
function do_remove() { function do_remove() {
local tmp1=/tmp/maildirtmpfile$$ local tmp1=`maketemp maildir-tmp-file`
local tmp2=/tmp/maildirtmpfile$$ 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 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 ls -1 "$srcdir/$i" | sort > $tmp1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment