Files
archivmail/deploy/cron.d/archivmail-ocr-reprocess.sh
T
sysopsandClaude Sonnet 4.6 46502abe75 fix(PROJ-58): Lockfile gegen überlappende Cron-Batch-Läufe + update.sh synct Cron-Dateien
Root Cause für ausbleibende Lastsenkung: update.sh hat /etc/cron.d/archivmail
nie auf den Server kopiert, daher fehlten die PROJ-58-Cronzeilen trotz
aktivem batch_mode komplett. Jetzt kopiert update.sh die Cron-Datei und alle
Wrapper-Skripte bei jedem Deploy automatisch ein.

Zusätzlich: Wrapper-Skripte (analog mailpiler indexer.delta.sh) verhindern
per Lockfile, dass sich Cron-Läufe bei großem Backlog überlappen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 23:54:37 +02:00

22 lines
817 B
Bash
Executable File

#!/usr/bin/env bash
# archivmail — Cron-Wrapper für 'ocr-reprocess --status pending' (PROJ-58
# batch_mode). Lockfile-Schutz gegen überlappende Läufe, siehe
# archivmail-index-pending.sh für die ausführliche Begründung.
set -euo pipefail
LOCKFILE=/var/run/archivmail/ocr-reprocess.lock
LOGTAG=archivmail-ocr-reprocess
mkdir -p "$(dirname "$LOCKFILE")"
if [[ -f "$LOCKFILE" ]]; then
echo "OCR-REPROCESS ERROR: bereits laufender Lauf seit $(cat "$LOCKFILE")" | logger -t "$LOGTAG"
exit 0
fi
date > "$LOCKFILE"
trap 'rm -f "$LOCKFILE"' EXIT
echo "OCR-REPROCESS INFO: Lauf gestartet" | logger -t "$LOGTAG"
/opt/archivmail/archivmail ocr-reprocess --config /etc/archivmail/config.yml --status pending --limit "${ARCHIVMAIL_OCR_LIMIT:-500}"
echo "OCR-REPROCESS INFO: Lauf beendet" | logger -t "$LOGTAG"