Назад | Перейти на главную страницу

Используйте `tail` для поворота журналов nginx, чтобы размер одного файла журнала был ограничен

Можешь использовать 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 инструменты, я прочитал основные части документации, и они также просты в настройке для обычных сценариев.

Я не пытаюсь изобретать велосипед. Мне просто «любопытно» узнать, можно ли что-то сделать по-другому.

Вероятно, ответ нет по очень веским причинам.

Я просто пытаюсь лучше разобраться в этом предмете.