Newer
Older
mailpiler / util / indexer.main.sh.in
@Janos SUTO Janos SUTO on 29 Oct 2022 1 KB Fixed calculating sphinx index size
#!/bin/bash

set -o nounset
set -o errexit
set -o pipefail

MAINTMPFILE="/var/run/piler/main.indexer.tmp"
CONFIG_FILE="SYSCONFDIR/piler/sphinx.conf"
INDEXDIR=sphinx
PRIORITY="mail.info"
TOUCHFILE="/var/piler/stat/indexer"
MAIN_INDEX="main1"

if [[ -f SYSCONFDIR/piler/MANTICORE ]]; then
   CONFIG_FILE=SYSCONFDIR/piler/manticore.conf
   INDEXDIR=manticore
fi

export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

finish() {
   rm -f "$MAINTMPFILE"
}


if [[ -f "$MAINTMPFILE" ]]; then
   echo "INDEXER ERROR: indexer merging to main index is already running. It started at $(cat "$MAINTMPFILE")" | logger -p "$PRIORITY"
   exit 1
fi

date > "$MAINTMPFILE"

touch "$TOUCHFILE"

trap finish EXIT

echo "INDEXER INFO: merging to main started" | logger -p "$PRIORITY"

indexer --config "$CONFIG_FILE" --quiet --merge "$MAIN_INDEX" dailydelta1 --merge-dst-range deleted 0 0 --rotate

echo "INDEXER INFO: merging to main finished" | logger -p "$PRIORITY"

sleep 5

echo "INDEXER INFO: resetting daily delta started" | logger -p "$PRIORITY"

indexer --config "$CONFIG_FILE" --quiet dailydelta1 --rotate

echo "INDEXER INFO: resetting daily delta finished" | logger -p "$PRIORITY"

sum=0
while read -r a b; do
   sum=$(( sum + b ))
done < <( find /var/piler/${INDEXDIR}/ -type f -name main\*.sp[dp] -printf "%TY%Tm%Td %s\\n" )
printf "%d" $sum > /var/piler/stat/main_index_size