На сервере Linux я хочу уменьшить размер файла журнала, который составляет несколько ГБ. Отрезание верхней половины, или, может быть, сработает первый миллион строк.
11
Это часто встречается в интервью ...
Вы хотите обрезать файл, не нарушая процессы? Является ли какая-либо информация в файле журнала ценной? Если это так, я обычно "обнуляю" файл простой строкой bash.
: > /var/log/badlogfile
Это происходит в ситуациях, когда у вас может быть приложение, которое невозможно перезапустить контролируемым образом. Допустим, это приложение для финансовой торговли, и программу нельзя остановить или перезапустить в течение торгового дня. Тем не менее, файлы журнала растут с некоторой непристойной скоростью из-за ошибки приложения. Усечение файлов журнала с помощью метода выше или ниже может поддерживать работу системы.
Также см .: http://www.cyberciti.biz/faq/truncate-large-text-file-in-unix-linux/
Вы можете поместить его в logrotate, тогда он не так легко выйдет из-под контроля
источник
Если он активно пишется, у вас мало что можно сделать с помощью усечения. Ваши единственные варианты - очистить файл (вы можете сначала скопировать его в другое место).
Таким образом, файл оказывается пустым, но остается тем же файлом / индексом, поэтому он не нарушает работу программы, которая ведет журнал.
источник
Вы также можете попробовать cat / dev / null> / var / log /. Но я должен предупредить, что / dev / null не реализован в некоторых старых версиях ...
источник