Wie kann ich ein Shell-Skript ausführen, wenn ein WLAN verbunden ist?

Ich habe ein wirklich einfaches Shell-Skript, das nur eine Route zu meiner internen Entwicklungsmaschine hinzufügt. Dies ist nützlich, da diese Maschine einige LXC-Container enthält, sodass ich alle meine Container von meinem Handy aus erreichen kann (um Websites von mobilen Browsern oder Asterisk-SIP-Konten von CSipSimple zu testen).

#!/system/bin/sh
su -c "ip route add 10.0.3.0/24 via 192.168.0.200 dev wlan0"

Um diese Regel zu verwenden, habe ich eine neue lokale Verbindung auf ConnectBot erstellt, mit dem Skriptnamen als Anmeldebefehl. Das funktioniert super.

Allerdings bin ich zu faul. Ich möchte nur wissen, ob es eine Möglichkeit gibt, dieses Skript anzuwenden, sobald ich mich automatisch mit meinem Heim-WLAN verbinde. Vielleicht etwas, um bei jeder Netzwerkänderung ein Skript auszuführen, da ich mit demselben Skript überprüfen könnte, ob ich mit dumpsys und etwas grep-Magie mit meinem Heim-WLAN verbunden bin.

Hast du Tasker angeschaut ? Das ist im Allgemeinen die erste App für ausgelöste Automatisierungsaufgaben auf Android.
Danke @Matthew, ich habe AutomateIt und Shell Plugin verwendet und funktioniert großartig! Das löst mein Problem. Vielleicht könnte jedoch jemand erklären, ob Android bei Netzwerkänderungen ein Skript auslöst, wie es andere Linux-Varianten mit ifup-ifdown-Dateien tun
Es würde mich nicht wundern, wenn es so wäre, aber ich kenne mich damit leider nicht aus.
Ich suche immer noch nach einem solchen Tool, da ich es einfach nicht akzeptieren kann, ein 18-MB-Monster wie AutomateIt zu installieren, nur um ein Einzeiler-Skript auszuführen.

Antworten (1)

Matthew hat für diese Aufgabe bereits auf hingewiesen (uh) – eine App, die ich bereits seit Jahren verwende. Lassen Sie mich also die Schritte hinzufügen, um dies zu erreichen. Offensichtlich ist eine Voraussetzung, dass das Gerät gerootet ist – aber der suBefehl in der Frage sagt mir, dass es so ist. Auf geht's:

  • Bedingung: State › Net › WiFi Connected
    Geben Sie als Parameter die SSID Ihres WiFi-Netzwerks an, damit es nicht auf fremde Netzwerke feuert :)
  • Aufgabe: Skript › Shell ausführen
    Hier fügen Sie den Namen des auszuführenden Skripts (vollständiger Pfad) hinzu, dem ein Ausrufezeichen vorangestellt ist (um anzuzeigen, dass es als root ausgeführt werden muss).

Dies sollte es tun. Nicht selbst getestet, da ich keine Routen zum Hinzufügen habe :)