Excluindo os 10 MB iniciais de um arquivo aberto

1

Eu tenho um arquivo de log de tamanho de quase 100 MB que é aberto por algum programa e o registro está continuamente acontecendo nesse arquivo. Eu quero excluir os primeiros 10 MB desse arquivo. Existe alguma maneira de fazer isso sem afetar o processo de registro no arquivo.

    
por pradeepchhetri 05.10.2012 / 20:37

3 respostas

1

Para pular os primeiros 10 MB, você pode usar dd assim:

dd if=ORIGINAL_FILE of=10MB_LESS_FILE bs=512 skip=14880

Isso copiará o arquivo original para 10MB_LESS_FILE .

    
por 05.10.2012 / 22:49
1

Não há como excluir dados do início de um arquivo in situ. A chamada truncada pode cortar dados do final, mas não há equivalente para aparar o espaço arbitrariamente.

Portanto, o melhor que você pode fazer é copiar o arquivo pulando os bits que você não deseja.

    
por 05.10.2012 / 23:42
0

Você precisa certificar-se de que o inode do arquivo aberto por um ou mais processos não seja alterado para continuar registrando-se nele. Para fazer isso, faça:

cp mylog mylog.new
< modify, trim or mangle 'mylog.new' >
cp mylog.new mylog
    
por 05.10.2012 / 21:18

Tags