ansible/roles/nginx/files/nginx-logrotate.sh

28 lines
559 B
Bash
Executable file

#!/bin/sh
set -eu
cd /var/www/logs
find_rotated() {
find . -mindepth 1 -maxdepth 1 -type f -name "${1}.*" | sort -V -r
}
for log in *.log ; do
find_rotated "$log" | while read -r name; do
ext="${name##*.}"
next="${name%.*}.$((ext+1))"
mv "$name" "$next"
done
mv "$log" "${log}.1"
touch "$log"
find_rotated "$log" | while read -r name; do
num="$(echo "$name" | awk -F. '{ print $NF }')"
if [ "$num" -gt 7 ]; then
rm -f "${log}.${num}"
fi
done
done
kill -USR1 "$(cat /var/run/nginx.pid)"