17 lines
336 B
Bash
17 lines
336 B
Bash
#!/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"
|