В Unix, как лучше всего уменьшить размер массивного файла журнала, в который активно записывается?

11

На сервере Linux я хочу уменьшить размер файла журнала, который составляет несколько ГБ. Отрезание верхней половины, или, может быть, сработает первый миллион строк.

Фил
источник

Ответы:

12

Это часто встречается в интервью ...

Вы хотите обрезать файл, не нарушая процессы? Является ли какая-либо информация в файле журнала ценной? Если это так, я обычно "обнуляю" файл простой строкой bash.

: > /var/log/badlogfile

Это происходит в ситуациях, когда у вас может быть приложение, которое невозможно перезапустить контролируемым образом. Допустим, это приложение для финансовой торговли, и программу нельзя остановить или перезапустить в течение торгового дня. Тем не менее, файлы журнала растут с некоторой непристойной скоростью из-за ошибки приложения. Усечение файлов журнала с помощью метода выше или ниже может поддерживать работу системы.

Также см .: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/

ewwhite
источник
1
двоеточие должно указывать на подсказку, или это фактически входит в команду?
Фил
Двоеточие является частью команды.
ewwhite
Тебе не нужна толстая кишка.
MikeyB
Это неоперация. Это не нужно, но мне нравится держать его там, когда я даю рекомендации.
ewwhite
Это не сработало для меня, журнал не изменился в размере. Он пошел к 0, но затем вернулся к своему полному размеру
thouliha
2

Вы можете поместить его в logrotate, тогда он не так легко выйдет из-под контроля

netpixie
источник
В конечном итоге это должно произойти. Я новичок в этой работе ...
Фил
1

Если он активно пишется, у вас мало что можно сделать с помощью усечения. Ваши единственные варианты - очистить файл (вы можете сначала скопировать его в другое место).

echo "" >/var/log/fileYouWantToEmpty

Таким образом, файл оказывается пустым, но остается тем же файлом / индексом, поэтому он не нарушает работу программы, которая ведет журнал.

Twirrim
источник
0

Вы также можете попробовать cat / dev / null> / var / log /. Но я должен предупредить, что / dev / null не реализован в некоторых старых версиях ...

Нандини Ананд
источник
урезание файла у меня не работает, я сделал тест на centos 7 и redhat 5
c4f4t0r