#!/usr/bin/env bash # rotate-logs.sh — comprimeer oude run-logs en verwijder zeer oude # # Wordt elke daemon-iteratie aangeroepen. Werkt op: # - ${AGENT_LOG_DIR}/runs/*.log (per claude -p invocation) # - ${AGENT_LOG_DIR}/jobs/*/*.txt (per job archief) # # Configurable via env: # AGENT_LOG_GZIP_AFTER_HOURS (default 24) # AGENT_LOG_DELETE_AFTER_DAYS (default 30) set -uo pipefail source /opt/agent/bin/_lib.sh : "${AGENT_LOG_DIR:=/var/log/agent}" : "${AGENT_LOG_GZIP_AFTER_HOURS:=24}" : "${AGENT_LOG_DELETE_AFTER_DAYS:=30}" # Convert hours → minutes for find -mmin GZIP_AFTER_MIN=$(( AGENT_LOG_GZIP_AFTER_HOURS * 60 )) # 1. Gzip oude .log files in runs/ find "${AGENT_LOG_DIR}/runs" -maxdepth 1 -type f -name '*.log' \ -mmin "+${GZIP_AFTER_MIN}" -print 2>/dev/null \ | while read -r f; do gzip -q "$f" || true done # 2. Delete zeer oude .gz files in runs/ find "${AGENT_LOG_DIR}/runs" -maxdepth 1 -type f -name '*.log.gz' \ -mtime "+${AGENT_LOG_DELETE_AFTER_DAYS}" -delete 2>/dev/null || true # 3. Delete zeer oude job-archieven find "${AGENT_LOG_DIR}/jobs" -maxdepth 1 -mindepth 1 -type d \ -mtime "+${AGENT_LOG_DELETE_AFTER_DAYS}" -exec rm -rf {} + 2>/dev/null || true