Поведение, которое вы описываете, происходит только в том случае, если logrotate явно указано сделать это через директиву copytruncate
. Документация предупреждает о возможности потери некоторых данных журнала из-за такого поведения. Эту директиву следует использовать только в крайнем случае.
Стандартный метод ротации файлов журнала состоит в переименовании и последующей отправке сигнала процессу, позволяющему открыть новый файл журнала. Это быстрее и без риска потери части журнала. Но для этого требуется, чтобы в процессе записи была возможность переключиться на новый файл журнала.
Сжатие можно отключить или отложить до следующей ротации. Если используется директива compress
, старые файлы журнала сжимаются. Если эта директива не используется, они не сжимаются.
Если используются оба параметра compress
и delaycompress
, сжатие откладывается до следующего вращения. Таким образом, после каждой ротации два новейших файла журнала еще не будут сжаты.
после перемещения и создания нового файла я увидел, что процесс ничего не записывает в него, поэтому пришлось перезапустить процесс, чтобы он записал в этот файл
Процесс записывает в тот же файл, поэтому регистрировать копию вместо перемещения. Когда вы удаляете журнал, процесс по-прежнему записывает в журнал, и вы можете видеть, что использование файловой системы растет, но нет файла. Перезапуск процесса освободит место на диске.
рассмотрите возможность