Austrian Linux Forum

whereami - konfigurieren und anwenden

Kategorien: Linux How-Tos
2 Antworten
theEdge
theEdge am Samstag, 8. Oktober 2005 um 15:06
whereami ist ja eigentlich ein recht ein nettes tool, wenns nicht für einen erstbenutzer relativ schwer zu konfigurieren wär. anfangs hab ich überhaupt nicht durchgeblickt, vor allem weil überall nur von einer whereami.conf die rede ist und mir mein verstand nicht gesagt hat, wovon whereami nun eigentlich diese statusinformationen bezieht, nun denn, so funktionierts: whereami wird entweder beim Systemstart oder manuell als root durch "whereami" aufgerufen. zuerst liest es das file "detect.conf" aus und befolgt die darin beschriebenen anweisungen und setzt die zustände, die eben in dieser detect.conf drin sind. anschließend wird diese ominöse whereami.conf eingelesen und aufgrund der zuvor gesetzten zustände entsprechende aktionen unternommen. [b]detect.conf[/b] die eigentliche Konfiguration von whereami erfolgt über die detect.conf. Eine entsprechende man-page ist für "man detect.conf" vorhanden und beschreibt detailliert (wenn auch manchmal etwas konfus) die einzelnen befehle. Sie ist zwar ausführlichst dokumentiert, dennoch will ich hier zeigen, wie ich beispielsweise erkenne, wann ich mit meinem Laptop zuhause bin... grundsätzlich besteht detect.conf aus einem absolut simplen code. die paar wenigen konstrukte sind selbsterklärend. der aufbau (sofern kein besonderes konstrukt wie if, ...) erfolgt prinzipiell so: [code][comman d] [interface oder command-parameter] [zustand1,...,zustand n][/code] Wobei hier die eckigen Klammern nicht als optionale Parameter zu sehen sind, sondern als Platzhalter. Doch nun zu meiner detect.conf: [code] # Zuerst wird aus irgend einem Grund der Rechner als undocked deklariert default undocked # die testmii-tools werden mit whereami automatisch installiert # sie können auch auf der kommandzeile aufgerufen werde (man mii-tool) # die nächste zeile testet, ob ein kabel am RJ45-Port eth0 hängt # wenn ja, wird der zustand "lan" gesetzt testmii eth0 lan # sollten wir down sein (unconnected) if down # sind wir einerseits undocked always at undocked # und andererseits sicher nicht mit einem der beiden interfaces connected always not at eth0,eth1 # oder wir haben ein kabel entdeckt, welches in eth0 (RJ45 port) steckt elif lan # das default-interface, auf dem ab jetzt die befehle ausgeführt werden # wird auf eth0 gesetzt set INTERFACE eth0 # wir überprüfen, ob ein dhcp vorhanden sind. zugewiesene IP ist dabei wurscht # wenn ja, setzen wir den status "dhcp". andere tests, siehe man detect.conf testdhcp '*.*.*.*' dhcp # anonsten müssen wird über WLAN probieren... else # Modul für Centrino laden und Status "w_eth1" setzen modprobe ipw2200 w_eth1 fi # Wenn wir nun kein Plug auf eth0 haben, aber WLAN probieren, dann if w_eth1 set INTERFACE eth1 # Scannen wir nach einem Access point (testap), wenn erfolgreich, status "wlan" testap scan wlan fi # wenn wir einen gefunden haben, überprüfen wir, welchen wir vor uns haben if wlan # wir scannen nach einem accesspoint mit der essid "u12" und meinem geheimen # Schlüssel ;) syntax der testap funktionen: man detect.conf. status, wenn # gefunden: at_home und wdhcp testap u12,meingeheimerschlüssel at_home,wdhcp # ansonsten sind wir nicht in wlan und nicht in wdhcp notat wlan,wdhcp fi if wdhcp # wir überprüfen wieder, ob ein dhcp vorhanden ist. interessant hierbei: mit diesem # command prüfen wir nicht nur, sondern lassen uns auch gleich eine IP zuweisen testdhcp '*.*.*.*' dhcp fi [/code] [b]whereami.conf[/b] Nun haben wir herausgefunden wo wir sind. whereami nimmt nun die whereami.conf her und führt aufgrund des Statuses, den wir im detect.conf gesetzt haben, die befehle in der whereami.conf aus die einträge in whereami.conf folgen folgender syntax: [code]{+,-,!,=} location action[/code] + wird ausgeführt, wenn wir vorher wo anders und nun an dieser location sind - wird ausgeführt, wenn wir vorher an der location und nun wo anders sind = wird ausgeführt, wenn wir uns bereits an der location befinden ! wird ausgeführt, wenn wir uns gerade nicht an der location befinden [code] # Wenn wir nach at_home kommen, wird das script homemount ausgeführt +at_home /bin/homemount # sind wir nicht mehr at_home, unmounten wir den mp3-ordner wieder. -at_home umount /mnt/mp3 [/code] zugegebenermaßen nicht sehr umfangreich *g* aber es verdeutlicht die theorie. es sind außerdem eine menge an dokumentierten beispielen in der whereami.conf gespeichert. weiters gibts "man whereami.conf" ;) verdeutlichend und zum verständnis beitragend ist es, den befehl whereami als root auszuführen und eventuell in der detect.conf, die zeile "set DEBUGWHEREAMI 1" hinzuzufügen viel spass! :)

Kommentare

Markus René Einicher
Markus René Einicher am Samstag, 8. Oktober 2005 um 10:30

Das wichtigiste fehlt: Die Antowrt auf die Frage: "Was ist whereami"?

theEdge
theEdge am Samstag, 8. Oktober 2005 um 15:06

lol, stimmt

whereami ist ein tool, welches mir meine interfaces konfiguriert, je nachdem an welchem ort ich mich befinde, und darüber hinaus noch beliebige scripts ausführen kann.

Wird zb. gern verwendet um je nach Standort verschiedene Profile zu laden (zb. zuhause mp3s mounten, in der Schule die Schullaufwerke mounten, etc.)