X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=exim.cron.db;h=4e5927b50a81bef1cb113f68cca1281958b4e691;hb=bb13720e5e14dbb40dcb8441bdc8c79297ad1199;hp=1d5f00183a1dc3f3a16f63682ba8625209aeedc0;hpb=312635e661ca476cd28422895f843128481ef06e;p=packages%2Fexim.git diff --git a/exim.cron.db b/exim.cron.db index 1d5f001..4e5927b 100644 --- a/exim.cron.db +++ b/exim.cron.db @@ -1,10 +1,30 @@ #!/bin/sh cd / -SPOOLDIR="$(/usr/bin/exim -bP spool_directory | /bin/sed 's/.*=[[:space:]]\(.*\)/\1/')" +SPOOLDIR="$(/usr/bin/exim -bP spool_directory 2> /dev/null | /bin/sed 's/.*=[[:space:]]\(.*\)/\1/')" [ ! -d "$SPOOLDIR" ] && echo "Spooldir [$SPOOLDIR] is not a directory" && exit 1 -/usr/bin/find $SPOOLDIR/db -maxdepth 1 -name '*.lockfile' -or -type f -printf '%f\0' | xargs -0r -n 1 /usr/bin/exim_tidydb $SPOOLDIR > /dev/null +for db in $(/usr/bin/find $SPOOLDIR/db -maxdepth 1 -name '*.lockfile' -or -type f -printf '%f\n'); do + t= + case "$db" in + callout) + t="-t 7d" + ;; + *) + ;; + esac + /usr/bin/exim_tidydb $t $SPOOLDIR $db > /dev/null + # Try to lower it's size if it is bigger than 300M. Result still can be bigger if the db contains + # so much unexpired data. + toobig=$(/usr/bin/find $SPOOLDIR/db/$db -size +300M) + if [ -n "$toobig" ]; then + /usr/bin/exim_dumpdb $SPOOLDIR $db | /usr/bin/exim_dbmbuild -nowarn - $SPOOLDIR/db/$db.new > /dev/null + chown exim:exim $SPOOLDIR/db/$db.new + chmod 640 $SPOOLDIR/db/$db.new + mv $SPOOLDIR/db/$db.new $SPOOLDIR/db/$db + fi + +done exit 0