X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fbackupninja.git;a=blobdiff_plain;f=handlers%2Fmaildir;h=5219bef54a32f03072cec111c89b43d14901a62e;hp=0af8ff7c7d66e320cc6c5f5c84c80ea6c66c2a4a;hb=995e34e1663e2448dea174412d58ff03ad32c6cc;hpb=ef4bbe3c2bb4af4c2a77e00f2ca0e8971847c0bd diff --git a/handlers/maildir b/handlers/maildir index 0af8ff7..5219bef 100644 --- a/handlers/maildir +++ b/handlers/maildir @@ -12,7 +12,17 @@ # 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 @@ -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