Em vez de deletar todas as últimas 10000 linhas usando Vi, filtre-as em um novo arquivo (geralmente você não quer editar arquivos de log).
$ tail -n 10000 logfile >logfile.tail
Você pode então substituir logfile
por logfile.tail
, se desejar:
$ mv logfile.tail logfile
Como alguns programas que gravam em arquivos de log podem manter o arquivo de log aberto para gravação até que o programa saia, algumas novas mensagens podem ser gravadas no arquivo de log antigo, mesmo que ele seja substituído pela versão mais curta. Essas mensagens de log são perdidas.
Para contornar isso:
$ cat logfile.tail >logfile
Isso truncará logfile
(esvaziando-o sem removê-lo) e, em seguida, substituirá o conteúdo por logfile.tail
. Isso também significa que nenhuma mensagem de programas que tenham logfile
aberto para gravação será perdida.
Considere também colocar algum tipo de rotação automática de arquivos de log para evitar arquivos de log excessivamente grandes.