Опция Logrotate copytruncate занимает слишком много времени

Вы должны сохранить результат обратной кавычки в переменной скрипта и использовать его в вызове perl, например

REPL = `cat ~/foo/bar/file.txt`
perl -pe "s/loremipsum/$REPL/ge" -i ~/path/to/target.txt

Но я думаю, было бы лучше использовать сценарий perl только для замены строки содержимым файла, потому что содержимое foo / bar / file.txt может повредить вашу команду.

0
18.04.2018, 10:40
1 ответ

1 )ваши файлы журналов СЛИШКОМ велики. добавляйте запись logrotate в свой crontab (каждые 5 минут или около того ), чтобы сделать их меньше и проще в обращении.
2 )copytruncate скопирует (50 ГБ — это много ), затем обрежет (ftruncate )файл до 0 байт. это требует времени, и вы потеряете записи при выполнении этого.
3 )попытаться разобрать файл и избавиться от ненужной информации (например, описание поля -создать заголовок )и сохранить только значения, разделенные запятой (или другим знаком ).

лучшие варианты:
-более высокая частота.
-нет копирования.
-kill -HUP процесс повторного чтения файла conf.
-вращать 1.
-сжимать.
-переместите сжатый файл журнала в безопасное место

1
28.01.2020, 02:43

Теги

Похожие вопросы