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