Estou tentando remover lixo dos diretórios rsyslog (principalmente muitos subdiretórios vazios ou subdiretórios com um único arquivo de log parcial), mas com todos os tipos de nomes diferentes, variando de palavras que parecem ter sido cortadas a 10 hifens. Pensei que a maneira mais fácil de fazer isso seria simplesmente procurar por qualquer coisa que eu precisasse e dizer que todo o resto é lixo, mas é aí que fica complicado.
Eu preciso manter
- os 5-10 arquivos/subdiretórios padrão que vêm como padrão sempre que eu crio um novo ouvinte rsyslog
- qualquer diretório que seja um nome de host (qualquer subdiretório que comece com "vd" ou "vp")
- qualquer diretório que seja um endereço IP.
Qualquer outra coisa pode ser excluída.
Eu considerei usar apenas grep e excluir qualquer coisa que correspondesse a esses termos de pesquisa e então ter uma listagem de diretório em um arquivo de texto que eu poderia usar como uma lista de entrada para remover, mas estou tendo problemas com os nomes de host, assim que eu digo "vp*" não recebo nada de volta. Além disso, a string que estou usando para puxar os endereços IP também está pegando datas.
Minha pesquisa atual se parece com:
egrep -av 'HEAD|GET|version|putenv|id|default|POST|status|rsyslog_stats' |
grep -E "[^^][0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" |
grep -av "vp*" |
grep -av "vd*"
Se alguém tiver alguma sugestão, eu agradeceria muito. Se eu conseguisse fazer isso funcionar, eu poderia executá-lo a cada 15-30 minutos e manter todos os meus diretórios de ouvintes do rsyslog limpos e não ingerir tanto lixo nos meus índices do Splunk.
Obrigado!