logrotate + 7zip — прессуем логи

По умолчанию в FreeBSD утилита logrotate не установлена, по крайней мере в minimal конфигурации. Установить можно из пакетов:

pkg install p7zip

Далее logrotate необходимо настроить.
Ниже привожу пример настроек с работающей системы, пока без комментариев:

"/home/web/logfiles/access_log"
"/home/web/logfiles/error_log"
{
compresscmd /usr/local/bin/p7zip
compressoptions "a -mx=9 -md=128m -ms=on"
compressext .7z
nodelaycompress
notifempty
missingok
noolddir
postrotate
/bin/kill -s USR1 `cat ~/nginx/logs/nginx.pid`
endscript
prerotate

endscript
rotate 100
size 0
start 0
sharedscripts
}

В завершение добавим ротацию логов в планировщие (crontab -e)

00 00 * * * /usr/local/sbin/logrotate -s ~/etc/logrotate.state ~/etc/logrotate.conf >/dev/null 2>&1