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
No related branches found
No related tags found
No related merge requests found
......@@ -131,6 +131,23 @@ function setsection() {
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
# to the value of the configuration parameter $1
......@@ -305,14 +322,7 @@ function process_action() {
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
(
......
version 0.9 -- unreleased
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
......
......@@ -13,6 +13,16 @@
# 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
......@@ -101,8 +111,8 @@ $dir $destuser@$desthost:$destdir/$letter \
# 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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment