#!/bin/bash
set -euo pipefail

log=/var/log/trojan.log
limit=$((20 * 1024 * 1024))
[[ -f "$log" ]] || exit 0
size=$(stat -c %s "$log")
(( size < limit )) && exit 0

rm -f "${log}.5.gz"
for n in 4 3 2 1; do
  [[ -f "${log}.${n}.gz" ]] && mv "${log}.${n}.gz" "${log}.$((n + 1)).gz"
done
cp "$log" "${log}.1"
: > "$log"
gzip -f "${log}.1"
