From 729b24edd855b7eb60538ac59e08ef05813ff70d Mon Sep 17 00:00:00 2001 From: oliver Date: Fri, 14 Aug 2026 15:44:39 -0300 Subject: [PATCH] log rotate --- app/sbin/rotateLogs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 app/sbin/rotateLogs diff --git a/app/sbin/rotateLogs b/app/sbin/rotateLogs new file mode 100755 index 0000000..ad9f48f --- /dev/null +++ b/app/sbin/rotateLogs @@ -0,0 +1,30 @@ +#!/bin/bash +# rotateLogs — rotate odoo.log for all UUID containers, keep 4 weeks + +RETENTION_DAYS=28 + +for log in /4server/data/00*/logs/odoo.log; do + [[ -f "$log" ]] || continue + DIR=$(dirname "$log") + UUID=$(basename "$(dirname "$DIR")") + + STAMP=$(date '+%Y-%m-%d_%H-%M') + ARCHIVE="$DIR/odoo.log.$STAMP" + + # Copy preserving permissions, then truncate the live log + PERMS=$(stat -c '%a' "$log") + OWNER=$(stat -c '%U:%G' "$log") + cp "$log" "$ARCHIVE" + : > "$log" + + # Compress the archive, restore original ownership and permissions + gzip "$ARCHIVE" + chmod "$PERMS" "${ARCHIVE}.gz" + chown "$OWNER" "${ARCHIVE}.gz" + + echo "$UUID rotated -> $(basename "${ARCHIVE}.gz")" + + # Delete rotated logs older than 4 weeks + find "$DIR" -name 'odoo.log.*.gz' -mtime +$RETENTION_DAYS -exec rm -f {} \; \ + -exec echo "$UUID deleted: {}" \; +done