Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:lugstatus

Dies ist eine alte Version des Dokuments!


LUGStatus

—- datatemplateentry project —- template : templates:project name : LUGStatus imgname_img90 : lugstatus.png person_pages : 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.dyndns.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. neo)

Eingesetztes Skript

statusbot.sh
#! /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
projekte/lugstatus.1367452130.txt.gz · Zuletzt geändert: 2021/01/17 01:07 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki