PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rpm Abfrage



mtw
08.08.12, 13:16
Hallo miteinander.

ich steh vor einem Problem. Ich muss die installierten Pakete zweier Server mit "rpm -qa" vergleichen. Als Ausgabe soll ich einmal nur die Pakete die auf einen Server garnicht installiert sind, jedoch auf den zweiten schon installiert sind anzeigen. Die zweite Ausgabe soll dann die gleichen Pakete, jedoch mit verschiedenen Versionsnummern anzeigen.

Vielen Dank schon mal für die Hilfe

naraesk
08.08.12, 13:39
Du wirst wohl beide Ausgaben in eine Textdatei schreiben und dann mit einem eigenen Skript vergleichen müssen. Vielleicht lässt sich so etwas auch im Netz finden.

Sicher ganz hilfreich, falls es sich um yum handeln sollte:
http://www.fedoraforum.de/viewtopic.php?f=4&t=19981
http://fedoraforum.de/viewtopic.php?f=21&t=19060&p=107198&hilit=skript&sid=d9e8b5084d5d5371fa180f3b7968dccd#p107198

Anderer Ansatzpunkt. Nicht ganz so schick, aber mit weniger Programmieraufwand:
(1) Speichere die Ausgabe von rpm -qa von Server 1 in eine Textdatei
(2) Installiere die Pakete aus dieser Textdatei auf Server 2

→ Pakete die aktualisiert werden sollen, sind auf beiden vorhanden, aber in anderer Version
→ Pakete die installiert werden sollen, sind auf Server 1 vorhanden, nicht aber auf Server 2

Klappt natürlich nur, wenn die selben Repositories verwendet werden.

mtw
09.08.12, 09:43
bin jetzt schon mal so weit, allerdings hab ich immer noch keine Ahnung wie ich jetzt gleiche Pakete mit unterschiedlichen Versionen ausgeben soll????


if [ -z "$2" ] || [ -z "$2" ];
then
echo "Kein oder nur ein Server angegeben"
else

#Server erreicbarkeit mit ping testen
if ping -c2 $1 >> logrpm
then
s1=1
else
s1=0
echo "Der Zielrechner $1 ist nicht erreichbar"
fi

if ping -c2 $2 >> logrpm
then
s2=1
else
s2=0
echo "Der Zielrechner $2 ist nicht erreichbar"
fi

#------------------------------------------
if [ $s1 -eq 1 ] && [ $s2 -eq 1 ];
then
echo "Bitte das Passwort für $1 eingeben"
ssh $1 "rpm -qa --queryformat '%{NAME}\n'|sort" > "Packetlistevon$1"
ssh $1 "rpm -qa --queryformat '%{NAME}%{VERSION}\n'|sort" > "Packetlistevon3"
echo "Bitte das Passwort für $2 eingeben"
ssh $2 "rpm -qa --queryformat '%{NAME}\n'|sort" > "Packetlistevon$2"
ssh $2 "rpm -qa --queryformat '%{NAME}%{VERSION}\n'|sort" > "Packetlistevon4"
rm usvon
echo "-------------------------------------------------------------------------------------" >> usvon
echo "-------------------------------------------------------------------------------------" >> usvon
echo "Vollgende Pakete sind auf Server $1 nicht installiert jedoch auf Server $2" >> "usvon"
diff Packetlistevon$1 Packetlistevon$2 | uniq -u | grep '> ' >> "usvon"

echo "-------------------------------------------------------------------------------------" >> usvon
echo "-------------------------------------------------------------------------------------" >> usvon
echo "Vollgende Pakete sind auf Server $2 nicht installiert jedoch auf Server $1" >> "usvon"
diff Packetlistevon$1 Packetlistevon$2 | uniq -u | grep '< ' >> "usvon"

rm Packetlistevon$1 2>> logrpm
rm Packetlistevon$2 2>> logrpm
fi
fi