Как сохранить файл длиной N строк? - PullRequest
0 голосов
/ 17 июня 2009

У меня есть журнал, который должен иметь последние N записей.Нет проблем, если файл немного больше в несколько раз.

Моя первая попытка периодически запускается:

tail -n 20 file.log > file.log

К сожалению, это просто очищает файл.Я мог бы:

tail -n 20 file.log > .file.log; mv .file.log file.log

Однако это кажется грязным.Есть ли лучший способ?

Ответы [ 3 ]

6 голосов
/ 17 июня 2009

Звучит так, будто вы ищете logrotate .

2 голосов
/ 17 июня 2009

Согласен, возможно, вам нужен logrotate. Если вам все еще нужно решение для командной строки, это сделает работу. Ex - это линейный редактор. Никто больше не использует линейные редакторы, за исключением использования в скриптах оболочки. Синтаксис для оболочек Sh / Ksh / Bash. Я думаю, что то же самое в оболочке C.

ex log.001 << HERE
$
-20
1,-1d
w
q
HERE
1 голос
/ 17 июня 2009

logrotate , с size=xxx, где xxx - приблизительный размер для 20 строк и, возможно, delaycompress, чтобы предыдущая также была удобочитаемой для человека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...