Решение для Perl:
# !/usr/bin/perl while (<>) { push @r, [ $_, split /\s+/, $_ ]; } map { print $_->[0] } sort { (reverse $a->[1]) cmp (reverse $b->[1]) } @r;
Данные считываются с stdin в цикле с условием продолжения и готовятся к Schwartzian, Преобразовывают.
Последние 3 строки являются одной инструкцией.
Это нормально, вы, вероятно, «повернут» журнал без перезапуска, поэтому процесс (любой процесс действительно) будет открыты дескриптором.
либо используйте postrotate
или copytruncate
. Это довольно популярно:
postrotate
kill -USR1 `cat /var/run/nginx.pid` &>/dev/null
endscript
сигнал USR1
NGINX nginx , чтобы перезагрузить файлы журнала (отпуская дескрипторы)
Это то же проблема, что и тот, который я открыл на Modsecurity Refo. FYI, я связан с Spyderlabs для профессионального платного договора на поддержку Nginx, и я не слышал о них, так как они начали смотреть в поддержку Nginx ... Я остановил все модули Mod_Security в Nginx на данный момент, когда у меня есть другие ожидающие ошибки без решений прямо сейчас ...