#!/bin/bash set -o nounset set -o errexit set -o pipefail MAINTMPFILE="/var/run/piler/main.indexer.tmp" SPHINX_CONFIG="SYSCONFDIR/piler/sphinx.conf" PRIORITY="mail.info" TOUCHFILE="/var/piler/stat/indexer" MAIN_INDEX="main1" 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 "$SPHINX_CONFIG" --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 "$SPHINX_CONFIG" --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/sphinx/ -type f -name main\*.spd -printf "%TY%Tm%Td %s\\n" ) printf "%d" $sum > /var/piler/stat/main_index_size