Nach einiger Zeit sammeln sich alte Pakete in den durch Spacewalk, Red Hat Satellite oder SUSE Manager verwalteten Software-Kanäle an.
Spätestens, wenn die Festplatte vollzulaufen droht, sollte man aufräumen und nicht mehr benötigte Pakete entfernen. Prinzipiell gibt es hierfür ein Programm namens spacewalk-data-fsck – doch dieses Programm entfernt lediglich Pakete, die sich nicht in der Datenbank befinden, von der Festplatte.
In der Red Hat Spacewalk-Mailingliste hat Nicolas Pradelles ein selbstentwickeltes Skript vorgestellt, welches alte Paketversionen entfernt. Das Skript durchsucht alle Software-Kanäle und entfernt nicht aktuelle Pakete aus der Datenbank und dem Dateisystem.
Das Skript steht kostenlos zur Verfügung – muss vor der Ausführung jedoch noch angepasst werden, da noch Server, Benutzername und Passwort hinterlegt werden müssen:
# wget -O packages_cleanup.sh https://www.redhat.com/archives/spacewalk-list/2012-April/bin1dA64IopcS.bin # vi packages_cleanup.sh ... LOGIN='username' PASS='password' SRV='localhost'
Nach der Anpassung ist das Skript einsatzbereit – ein Aufräumvorgang sieht wie folgt aus:
# ./packages_cleanup.sh ################ centos6-updates-x86_64 ################ 389-ds-base-1.2.11.15-14.el6_4.x86_64 389-ds-base-1.2.11.15-20.el6_4.x86_64 389-ds-base-1.2.11.15-22.el6_4.x86_64 ... xulrunner-devel-17.0.9-1.el6.centos.i686 xulrunner-devel-17.0.9-1.el6.centos.x86_64 centos6-updates-x86_64: ALL=1538, LATEST=825, OLD=714, DELETED=705 ... Removed file missing in db: /var/satellite/redhat/...
Das Ganze lässt sich auch sehr komfortabel mit einem wöchentlichen Cronjob automatisieren:
# mkdir /opt/tools; mv packages_cleanup.sh /opt/tools # vi /etc/cron.weekly/spacewalk_clean.cron #!/bin/sh MAILTO=root #remove older versions of packages /opt/tools/packages_cleanup.sh ESC ZZ # chmod 755 /etc/cron.weekly/spacewalk_clean.cron
Somit entfällt das manuelle Aufräumen – das bedeutet mehr Zeit für die wirklich sinnvollen Dinge im Administrator-Alltag (z.B. Kaffee kochen und trinken). 😉
What username and password do you use? A local user, someone who has sudo access, or root?
Hey Blake!
You will need to enter the credentials for a Spacewalk user with administrator privileges.
Best wishes,
Christian.