Hamburg/Nanostation AirOS Skript ausführen

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

Um eine Nanostation mit AirOS 6.x ein Skript ausführen zu lassen muss man einiges an Aufwand treiben. Hier wird es am Beispiel aufgeführt: Ein Gerät, dass in einer Kirche hängt soll während des Gottesdienstes, Sonntags von 10:00 bis 11:00 Funkstille halten.

AirOS 6.x

Zunächst müssen wir das Custom Script AirOS installieren. Denn das reguläre AirOS führt aus Sicherheitsgründen keine vom Nutzer angelegte Skripte nicht aus. Beide firmwares warnen übrigens auf der Hauptseite der GUI sobald Nutzerskripte installiert sind.

WLAN-Schnittstelle Identifizieren

Mit

iwconfig

findet man heraus, dass ath0 auf dem Beispielgerät die WLAN-Schnittstelle ist.

Persistentes Start-Skript

Das Verzeichnis /etc/crontabs, in dem die auszuführenden cronjobs liegen, überlebt keinen Neustart. Auch cron läuft standardmäßig nicht. Man kann aber ein persistentes Start-Skript anlegen:

vi /etc/persistent/rc.poststart

Hier tippt man folgendes Skript:

#!/bin/sh

# Verzeichnis Anlegen:
mkdir /etc/crontabs	

# Kommentar in die Datei backbone schreiben:
echo "#min hour day month dayofweek command" >> /etc/crontabs/backbone

# Die Schnittstelle ath0 zur 0. Minute der 10. Stunde am 0. Wochentag (Sonntag) runter nehmen:
echo "0 10 * * 0 ifconfig ath0 down" >> /etc/crontabs/backbone

# Die Schnittstelle um 11:00 wieder hoch nehmen
echo "0 11 * * 0 ifconfig ath0 up" >> /etc/crontabs/backbone
  
# cron starten
crond enable 

Die Einstellungsdatei für cron muss den selben Namen wie der Benutzer in AirOS haben. Das Beispiel oben geht davon aus, dass dies "backbone" ist. In der Voreinstellung von AirOS ist dies "ubnt". Nun muss das Skript noch ausführbar gemacht werden:

chmod +x /etc/persistent/rc.poststart

Zeit Einstellen

Cron setzt voraus, dass man die Uhrzeit kennt. NTP muss also in der GUI unter Services NTP-Client aktiviert sein. Leider bringt das Setzen der Zeitzone in der GUI wenig, denn es gibt keine Einstellung für Sommer-/Winterzeit. Auch hier legt man ein Skript an, dass die Zeitzonen Informationen in der Umgebungsvariable TZ setzt :

vi /etc/persistent/profile

Inhalt:

export TZ=CET-1CEST-2,M3.5.0/2,M10.5.0/3

Persitente Einstellungen Persistent Machen

Auch die persistenten Einstellungen (oben) sind dies gar nicht, bis man folgendes ausführt:

cfgmtd -w -p /etc

Neustarten

reboot

Vergleich mit OpenWRT

crontab -e
#min hour day month dayofweek command
0 10 * * 0 wifi down
0 11 * * 0 wifi up
/etc/init.d/cron start
/etc/init.d/cron enable

fertig.