Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
Script zum automatischen Ein-/Ausschalte des WLAN Adapters
Script zum automatischen Ein-/Ausschalte des WLAN Adapters
LinTec
13.03.13
13:45
Hallo zusammen,
ich habe ein Script geschrieben, dass den WLAN Adapter meines MBs ausschaltet, sobald ich ein LAN Kabel anschließe. Das Ganze wird via GeekTool alle 5 Sek. aufgerufen.
Ich habe aber noch zwei Probleme:
1. Die Password Abfrage bei ifconfig en1 up/down so ändern, dass kein PW im Code hinterlegt sein muss
2. Die Mehrfachverzweigung der IF Anweisung optimieren?
Vielleicht kann mir jemand von euch helfen.
Hier der Code:
*********************************************************************************************************
#!/bin/bash
#Status en0 = Ethernet Anschluss
#
var1=`ifconfig en0 | grep -i active | awk '{printf $2}'`
#
#Status en1 = WLAN Adapter
#
var2=`ifconfig en1 | grep -i active | awk '{printf $2}'`
#
#Passwort fuer den SUDO Befehl
#
password= //Hier wird das Passwort des Benutzers für den SUDO Befehl gespeichert
#
#Bedinungsabfrage
if [[ "$var1" = "inactive" && "$var2" = "inactive" ]]
then
echo $password | sudo -v -S
sudo ifconfig en1 up
sudo -k
echo "WLAN connected!"
else
if [[ "$var1" = "active" && "$var2" = "active" ]]
then
echo $password | sudo -v -S
sudo ifconfig en1 down
sudo -k
echo "Ethernet connected!"
else
if [[ "$var1" = "active" ]]
then
echo "Ethernet connected!"
else
echo "WLAN connected!"
fi
fi
fi
Hilfreich?
0
Kommentare
Duck Dodgers
13.03.13
14:07
Was genau soll der Sinn dafür sein? Wenn du die Reihenfolge in den Systemeinstellungen so sortierst, dass Ethernet oben steht, dann brauchst du WLAN nicht zu deaktivieren!
Aber du kannst Airport (ohne sudo) wie folgt deaktivieren:
/usr/sbin/networksetup -setairportpower en1 off
zum aktivieren
/usr/sbin/networksetup -setairportpower en1 on
Hilfreich?
0
LinTec
13.03.13
15:42
Der Sinn ist, wenn ich das Ethernet Kabel aus dem MB entferne, dann wird automatisch die WLAN Verbindung aktiviert, wenn das Ethernet Kabel eingesteckt wird, dann wird das WLAN deaktiviert.
Hintergrund ist, wenn das MB bei mir auf dem Schreibtisch steht, dann wird es via Ethernet angeschlossen, dann brauche ich das WLAN nicht mehr. Wenn ich dann aber das MB mit ins Wohnzimmer etc. nehme, dann wird automatisch das WLAN aktiviert und ich muss das nicht mehr manuell machen.
Das Script habe ich ins Geektool eingebunden. Wenn ich in den Systemeinstellungen die Reihenfolge ändere, dann wird der WLAN Adapter nicht automatisch Ein- oder Ausgeschaltet, wenn das Ethernet Kabel eingesteckt ist.
Aber die beiden Befehle, die du mir genannt hast sind Gold wert! Danke dafür. Sowas habe ich gesucht. Jetzt kann ich das Script entsprechend anpassen.
Hilfreich?
0
Schildie
13.03.13
15:43
Duck Dodgers
Wenn du die Reihenfolge in den Systemeinstellungen so sortierst, dass Ethernet oben steht, dann brauchst du WLAN nicht zu deaktivieren!
Wenn du es wirklich sorum sortierst, macht dein Mac automatisch genau das, was du hier willst, auch ohne alle 5 Sekunden loszurödeln
Hilfreich?
0
_mäuschen
13.03.13
16:36
LinTec
…
Das Script habe ich ins Geektool eingebunden. Wenn ich in den Systemeinstellungen die Reihenfolge ändere, dann wird der WLAN Adapter nicht automatisch Ein- oder Ausgeschaltet, wenn das Ethernet Kabel eingesteckt ist.
…
Willst Du Strom sparen
Hilfreich?
0
LinTec
13.03.13
18:53
Also ich habe das bei mir in den Systemeinstellungen geprüft.
Reihenfolge 1. Ethernet 2. WLAN
Wenn ich das Ethernet Kabel ziehe wird WLAN nicht aktiviert und umgekehrt. Gibt es da noch eine weitere Einstellung die ich checken muss?
@_mäuchen: Nein ich will keinen Strom sparen. Ich möchte nur, dass wenn ich den Rechner auf dem Schreibtisch stehen habe, dann möchte ich gerne das alles über Ethernet geht. Ich sehe ausserdem keinen Sinn, warum das WLAN an sein soll. Dann wäre ja Ethernet und WLAN verbunden.
Hilfreich?
0
Duck Dodgers
13.03.13
19:03
Du musst WLAN aktiviert lassen! Also beides aktiv und dann in den Systemeinstellungen Ethernet über WLAN. Wenn das Kabel steckt, dann wird die Ethernet-Schnittstelle benutzt. Ziehst du das Kabel raus, dann nutzt du WLAN.
Aber wie gesagt du kannst networksetup nutzen, um Airport bzw. WLAN an- bzw. auszuschalten! en1 ist dabei die WLAN-Schnittstelle ... ggf. passt das nicht?
Hilfreich?
0
LinTec
13.03.13
19:40
Jetzt verstehe ich das. Beide Schnittstellen sind aktiv nur wird der Datenverkehr über die Ethernet Schnittstelle abgewickelt, wenn das Kabel angeschlossen ist.
Dann bleibe ich bei meinem Script. Ich habe es mit networksetup angepasst und funktioniert wunderbar.
Hilfreich?
0
_mäuschen
13.03.13
19:42
Also doch Strom sparen
Hilfreich?
0
Duck Dodgers
14.03.13
09:16
Hilfreich?
0
LinTec
14.03.13
15:45
Ne ich will keinen Strom sparen
Aber es macht wieder Spaß ein Paar Scripte zu schreiben
Hilfreich?
0
penumbra
14.03.13
17:08
Für solche Spielchen eignet sich ControlPlane ganz wunderbar:
„enjoy life in full trains“
Hilfreich?
0
Lyhoo
14.03.13
17:32
Ich klappe mein MacBook immer zu, wenn ich es woanders hin tragen will. Und erst wenn es schläft wird es bewegt.
LinTec
Ich würde versuchen, daß das Script nur beim Aufwachen läuft.
Z.B. mit Sleepwatcher
Ich habe Sleepwatcher nicht getestet.
Hilfreich?
0
Duck Dodgers
14.03.13
19:18
@Lyhoo
Du hast nicht verstanden, worum es geht
Hilfreich?
0
_mäuschen
14.03.13
19:52
Er will einen Script zum Strom sparen
Hilfreich?
0
LinTec
15.03.13
13:13
@penumbra: Schau ich mir mal an. Sagt mir nämlich gar nix. Aber danke für den Tipp!
@_mäuschen: Wenn ich Strom sparen will, dann schalte ich mein MB aus
Hilfreich?
0
_mäuschen
15.03.13
13:38
Ich empfehle dir nun diesen Support Artikel
http://support.apple.com/kb/HT5289?viewlocale=de_DE
Da steht ganz genau wie es sich mit verschiedenen Umgebungen des Netzwerks verhält,
wie es
Duck Dodgers schon erwähnte.
Es braucht keine scripts oder Ähnliches um deinem Wunsch
(automatischen Ein-/Ausschalte des WLAN Adapters)
gerecht zu werden.
Hilfreich?
0
LinTec
18.03.13
12:54
@_mäuschen:
Ich habe mir den Beitrag durchgelesen. Erstmals vielen Dank dafür. Das Verfahren hat aber einen Nachteil, wenn ich das richtig verstanden haben. Die Umschaltung der Umgebungen erfolgt nicht automatisch. Dies muss manuell gemacht werden. Wenn das der Fall ist, dann wäre mein Script in dieser Hinsicht hilfreicher.
Aber ich werde das Heute Abend mal ausprobieren. Vielleicht habe ich da was übersehen und es funktioniert doch automatisch.
Hilfreich?
0
Duck Dodgers
18.03.13
13:22
@LinTec
Wenn du es richtig eingestellt hast, dann läuft das automatisch! Etehrnet oben und dadrunter WLAN ... den Rest macht OSX
Hilfreich?
0
LinTec
18.03.13
18:27
Also bei mir macht der das nicht automatisch.
Habe die Reihenfolge angepasst und auch ein zweites Profil erstellt. Wenn das Ethernet Kabel gezogen wird, dann bleibt das WLAN aus.
Anbei mal ein Screenshot von der Reihenfolge.
Hilfreich?
0
_mäuschen
18.03.13
18:39
Solange bei Ethernet
Verbunden steht, geht da nix
Hilfreich?
0
LinTec
18.03.13
18:49
Du Witzbold!
Auch wenn das Kabel getrennt ist, dann tut sich da nix.
Hilfreich?
0
_mäuschen
18.03.13
19:59
Und wenn Airport jetzt auch noch unter Spannung stünde (d.h. Aktiviert), dann würde das System sich automatisch über das WLAN mit dem Internet verbinden.
Also geht es Dir doch nur ums Stromsparen
Hilfreich?
0
Igor Detlev
19.03.13
20:56
ich benutze für ähnliche Tasks (abhängig von der Umgebung automatisch die Passwortsperre an- und ausschalten) Control Plane. Ich kann es im Moment mangels LAN-Kabel nicht testen, aber wenn ich die Settings richtig sehe, kannst du damit das WLAN automatisch an- und abschalten, wenn der Rechner am LAN hängt.
Ist natürlich nicht so cool wie ein selbst geschriebenes Script.
http://www.controlplaneapp.com
Hilfreich?
0
hidalgo
10.04.13
12:16
Unabhängig des Sinns oder Unsinns dieses Unterfangens. Wäre es nicht möglich, statt den Skript alle 5 Sekunden laufen zu lassen, das so einzustellen, dass der Skript startet, wenn das Ethernet-Kabel ausgesteckt wird, bzw. en0 ausfällt?
Eine Art Fail-over, wenn man so will.
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
Hilfreich?
0
_mäuschen
10.04.13
12:27
Also ein anderes script, welches en0 checkt
Hilfreich?
0
hidalgo
14.04.13
23:05
_mäuschen
Also ein anderes script, welches en0 checkt
Nicht unbedingt. Irgendein Dienst läuft ja schon, der dafür sorgt, dass Ethernet aktiviert wird, wenn ein Kabel eingesteckt wird. Dieser soll einfach noch WLAN ausschalten. Also nicht ein anders Skript für die Überwachung der Schnittstellen, sondern nur eine andere Aktion.
„«Probleme kann man nie mit derselben Denkweise lösen, durch die sie entstanden sind.» Albert Einstein“
Hilfreich?
0
_mäuschen
15.04.13
13:01
Also ein weiteres script für eine andere Aktion
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
Mac mini M4
Mac OS X: 25 Jahre Aqua, 25 Jahre Dock
Time Machine auf SSD – schneller und langlebige...
2 TByte für 259 US-Dollar: Erste Upgrade-SSDs f...
PIN-Code erraten: Dauer
Mac mini M4 im ersten Test: Was hält der kleine...
iOS 18.3 mit Hinweisen auf neue Apple-Hardware
Gurman zum Release des neuen Apple TV, HomePods...