Можешь использовать tail
повернуть файл журнала nginx в заказчике иметь один файл журнала ограничен размером?
tail -c 1000000 access.log > temp.log
mv temp.log access.log
kill -USR1 `cat /var/run/nginx.pid`
Вышеуказанное будет выполняться в задании cron (выполняется каждые 5 минут) каждый раз. access.log
превышает 1100000
байты.
Последняя строка указывает nginx повторно открывать файлы журналов (поскольку вторая строка удаляет исходные файлы). access.log
)
Я читал о различных методах ротации журналов (nginx), но никогда не читал об этом подходе.
Таким образом, у меня получается один файл с ограниченным размером.
И ротация применяется не к набору файлов, а к записям журнала внутри одного файла журнала.
Конечно tail -c
(как из комментариев) обрежет первую (самую старую строку).
Основная проблема заключается в том, что пока tail записывает файл усечения, процесс все еще записывает записи журнала, поэтому некоторые записи может убирайся.
Нижнее примечание:
Я в курсе logrotate
и newsyslog
инструменты, я прочитал основные части документации, и они также просты в настройке для обычных сценариев.
Я не пытаюсь изобретать велосипед. Мне просто «любопытно» узнать, можно ли что-то сделать по-другому.
Вероятно, ответ нет по очень веским причинам.
Я просто пытаюсь лучше разобраться в этом предмете.