shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

remoção de pacotes antigos


From: Rodrigo Ribeiro
Subject: remoção de pacotes antigos
Date: Mon, 28 Nov 2016 21:17:31 -0200

Pessoal, boa noite!

Tenho uma automação que entrega os pacotes rpm de um repositório meu local para os meus hosts.
Fiz um script que pega todos os pacotes que meus hosts estão utilizando e faz uma lista. Nessa lista está o nome dos pacotes e o path deles como no exemplo abaixo:

/repos/rpm/qa/centos6/x86_64/nome_pacoteA-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteB-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteC-1.2.1-20.x86_64.rpm
/repos/rpm/qa/centos6/x86_64/nome_pacoteD-xxx-base-1.0.1-45-1.2.1-20.x86_64.rpm


Preciso que meu script agora remova todas as versões anteriores ao que está instalado nos meus hosts (que obtive através da lista), para isso uma validação que ele precisa fazer é pegar o número da versão dessa lista e tudo que for um numero inferior (versões anteriores) remover do meu repositório, pois nesse meu cenário só preciso o que já está instalado ou versões posteriores, pois pode ser que futuramente elas sejam autorizadas em futuras entregas.

A primeira forma que tentei fazer isso foi o if com -lt, mas como nos nomes dos pacotes possuem campos alfanuméricos esse método não funcionou, pois ele reclama que há muitos argumentos.

Diante disso pensei em parsear a primeira lista para uma segunda, só com o nome dos pacotes e os números das versões, sem campos alfanuméricos e caracteres para grepar no meu diretório original e tomar a decisão de apagar ou não, Tentei isso usando cut, awk, sed mas em algumas ocasiões não deram certo pois nem sempre tem o mesmo padrão de nome, como no exemplo que passei ai, o pacoteD tem alguns campos a mais até chegar no número da versão.

Alguém tem uma luz de como eu poderia fazer nesse caso?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]