Страница 1 из 1

подскажите как аккуратно обрезать лог

Добавлено: 2018-04-27 13:52:19
guest
думаю обрезать чтобы осталась концовка файла метров в 100 и включить ротацию
Важное: никогда не удаляйте и не обрезайте ОТКРЫТЫЙ файл каким-либо приложением!
посмотрите какой сигнал использует application для reopen log files или остановите
приложение.
После этого на выбор: tail, truncate, split, sed ...

Если с местом проблема, лучший вариант - sed - удалить из файла N строк по номерам, кол-во строк покажет wc.

До операции: df и после операции, можно выполнить sync && sync - почистить кеш записи на диски и снова df
- оценить результат

подскажите как аккуратно обрезать лог

Добавлено: 2018-04-27 16:37:50
skeletor
берём последние 2000 строк и перенаправляем в новый файл. исходный файл просто затираем.

Код: Выделить всё

tail -2000 big.log > small.log
echo > big.log
Почему нельзя обрезать открытый ТЕКСТОВЫЙ файл - мне не понятно. guest, объясни. Для самого приложения ничего не меняется - ни файл, ни открытый дескриптор, поэтому он как писал в него, так и будет писать. Я таким хаком пользуюсь уже давно и работает для тех приложений, которые нельзя ребутать и они не понимают SIGHUP при ротации логов. Например, java. И всё отлично работает.

подскажите как аккуратно обрезать лог

Добавлено: 2018-04-27 17:51:24
guest
Почему нельзя обрезать открытый ТЕКСТОВЫЙ файл - мне не понятно. guest, объясни.
sorry, обрезать можно, удалять нельзя, но обрезать нужно грамотно, чтобы sparse (разреженности)
не получилось.
берём последние 2000 строк и перенаправляем в новый файл. исходный файл просто затираем.
если место позволяет, не вопрос.