ArchLinux's Pacman lässt sich mit dem folgenden Skript einfach mithilfe von Nagios auf verfügbare Updates überprüfen. ======Skript====== Das folgende Skript muss unter **/usr/local/nagios/libexec/check_pacman** abgelegt werden: #!/bin/sh ################################# # check ArchLinux pacman # # ---------------------- # # 2012 By Christian Stankowic # # http://christian-stankowic.de # # info@christian-stankowic.de # ################################# #set warning level per param if detected if [ -n "$1" ]; then warning="$1" else warning=5 fi #update ports and calculate updates /usr/bin/pacman -Sy > /dev/null updates=$(/usr/bin/pacman -Qu | wc -l) #Return code depending on ready updates if [ "$updates" = 0 ]; then echo "OK - $updates updates ready" exit 0 elif [ "$updates" -le $warning ]; then echo "WARNING - $updates updates ready" exit 1 else echo "CRITICAL - $updates updates ready" exit 2 fi Danach wird das Skript ausführbar gemacht: # chmod +x /usr/local/nagios/libexec/check_pacman =====Parameter===== Ohne Parameter überprüft das Skript ob Updates vorhanden sind und gibt bei **5 Updates** oder weniger eine Warnung aus - existieren mehr Updates erhält Nagios den Status **CRITICAL** Dieser Schwellenwert kann dem Skript angepasst übergeben werden: # ./check_pacman 20 In diesem Beispiel verursachen bis zu 20 Updates noch eine Warnung - 21 Updates oder mehr übergeben einen kritischen Wert an Nagios. ======Einbindung in NRPE====== Damit das Skript auch innerhalb NRPE zur Verfügung steht, muss in der NRPE-Konfigurationsdatei (**/usr/local/nagios/etc/nrpe.cfg**) folgende Zeile hinzugefügt werden: command[check_pacman]=/usr/local/nagios/libexec/check_pacman In dieser Zeile kann natürlich noch ein alternative Schwellenwert angegeben werden. Nach einem Neustart des NRPE-Daemons steht das Kommando zur Verfügung. ======Einbindung im Nagios====== Nagios-seitig wird das Skript wie jeder gewöhnlicher Check in Form eines Kommandos implementiert und einem Host zugewiesen: define command{ command_name check_nrpe_pacman command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_pacman } #Updates define service{ use local-service host_name tvm-crux271 service_description Updates check_command check_nrpe_pacman }