Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:lugstatus

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.


Vorherige Überarbeitung
projekte:lugstatus [2021/01/17 01:06] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== 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 =====
 +
 +<file bash 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
 +</file>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki