====== LUGStatus ====== ---- datatemplateentry project ---- template : templates:project name : LUGStatus shortdesc : Kleines Script zum Anzeigen ob Mitglieder im Raum sind imgname_img90 : lugstatus.png person_pages : intern:mitglieder:klonfish start_dt : 2013-04-25 end_dt : 2013-04-25 status_ : fertig ---- Der LUGStatus ist ein kleines Icon, das auf der Webcam-Seite [[http://lug-saar.no-ip.org]] anzeigt, ob sich im Moment jemand in den Vereinsräumen aufhält oder nicht. Der aktuelle Status wird ermittelt, indem ein Skript per Cronjob jede Minute per SNMP am immer aktiven Switch im Hauptraum prüft, ob bestimmte Ports Link haben oder nicht. An diesen Ports hängen die beiden Switche am Tisch im Hauptraum sowie der Switch im Nebenraum. Dies ist ein ziemlich eindeutiges Indiz dafür, ob jemand in den Räumen ist oder nicht, da diese Switche nur dann an sind, wenn jemand da ist. Das Skript schreibt dann den aktuellen Status in eine Datei, die dann vom PHP-Skript der Webseite ausgewertet wird. Zudem wird der LUGStatus dazu benutzt, dass WLAN im Vereinsraum an- bzw. abzuschalten (s. [[intern:hosts:neo|neo]]) ===== Eingesetztes Skript ===== #! /bin/bash set -u set -e # LUG is considered online if at least one of the ports on switch0 is up # 4: Table switch 1 # 6: Table switch 2 # 25: Switch above fridge PORTS="4 6 26" AGENT="switch0" OID_PREF="1.3.6.1.2.1.2.2.1.8." COMMUNITY=public SNMP_VERSION=1 STATUSFILE="/tmp/lug-status.dat" for port in $PORTS; do status=`snmpget -v $SNMP_VERSION -c $COMMUNITY -O vq $AGENT $OID_PREF$port` if [ "$status" = "up" ]; then echo 1 > $STATUSFILE exit 0 fi done # LUG is offline if all ports are down echo 0 > $STATUSFILE