Desejo excluir os registros com mais de 6 meses deste arquivo.
Não estou claro o que você quer dizer, mas se eu tivesse que adivinhar, você deseja remover logfile entradas deste arquivo que são mais antigos do que 6 meses. Se for esse o caso, isso pode ser feito, mas é uma forma bastante extraordinária de gerenciar logs em um sistema * nix.
O que você deseja fazer (se a suposição estiver correta) exigirá analisar cada linha desse arquivo e determinar o registro de data e hora para testar se a data de entrada está dentro da janela atual de seis meses. Dependendo de uma aprovação / reprovação do timestamp, você escreveria o novo arquivo de log sem as entradas "antigas". Você poderia usar ferramentas shell como grep
e head
e tail
para conseguir isso, mas no interesse do desempenho você pode querer considerar um aplicativo C compilado customizado especificamente para o que você precisa.
Eu não sei em que tipo de hardware este arquivo de log está, mas o tamanho deste arquivo de log (6.8 Gigabytes) provavelmente causará gargalos de desempenho significativos ao analisar as entradas antigas e escrever as novas. Na maioria dos casos, quando as coisas são tão problemáticas, geralmente é um sinal de que o processo precisa ser revisto. Há casos de canto para essa regra no entanto. Boa sorte.