Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[OS X/AppleScript] Provider ab bestimmter Uhrzeit wechseln

2 views
Skip to first unread message

Bego Mario Garde

unread,
Sep 17, 2002, 6:15:48 PM9/17/02
to
Folgendes Problem: Ich surfe zu unterschiedlichen Zeiten am Tag und
verwende dabei je nach Tageszeit zwei unterschiedliche
Call-by-all-Anbieter. Dabei wäre es doch schön, wenn automatisch bei
Start je nach Uhrzeit der passende Provider verwendet würde, also z.B.
tagsüber Provider A und nachts Provider B.

Die Verbindungsdaten habe ich in den Systemeinstellungen/Netzwerk in
verschiedenen "Umgebungen" gesichert. Das klappt auch soweit ganz gut,
aber es ist etwas lästig per Hand umzuschalten (und ich vergass es
regelmäßig). Dabei wäre die Sache doch so einfach, wenn bei Systemstart
ein entsprechendes Script die passende Umgebung auswählen würde. (Eine
laufende Prüfung muß nicht unbedingt sein.)

So was sollte sich doch per AppleScript bewerkstelligen lassen. Oder
trägt man da was in irgendeine Unix-Datei ein (ähämm, da gibt's doch so
ne "crontable". Aua, nicht schlagen, ich hab keine Ahnung ...)

Gibt's irgendwo schon ein ähnliches AppleScript? Ich hab auch nach
langem googlen nix gefunden.

Bego

Philipp Sªsse

unread,
Sep 19, 2002, 6:27:37 AM9/19/02
to
Bego Mario Garde teilte mit:

> Gibt's irgendwo schon ein ähnliches AppleScript? Ich hab auch nach
> langem googlen nix gefunden.

Hast Du mal beim Umschalten den SppleScript-Rekorder mitlaufen lassen?

Gruß, Philipp.

--
Philipp Sªsse, Universität Paderborn Verschiedene Völker - eine Welt.
mailto:phi...@de-soc-mac.de Viele Betriebssysteme - ein Netz.
http://winstop.upb.de/ Mancherlei Glauben - ein Gott.

Peter Heilingbrunner

unread,
Sep 19, 2002, 7:34:16 AM9/19/02
to
Philipp Sªsse <phi...@de-soc-mac.de> wrote:

> Hast Du mal beim Umschalten den SppleScript-Rekorder mitlaufen lassen?

Funktioniert der inzwischen unter X?
Bei mir jedenfalls nicht.

Grüße,
Peter

Guido Mocken

unread,
Sep 19, 2002, 11:34:11 AM9/19/02
to
Bego Mario Garde <begom...@compuserve.de> wrote:

> Die Verbindungsdaten habe ich in den Systemeinstellungen/Netzwerk in
> verschiedenen "Umgebungen" gesichert.

Ungeschickt, hatte ich auch zuerst so. Mach Dir lieber innerhalb einer
Umgebung mehrere "Aktive Netzwerk-Anschlüsse". Der deutsche Name trügt
hier, denn es handelt sich nicht (zwangsläufig) um verschiedene
Hardware-Anschlüsse, sondern nur unterschiedliche Konfigurationen. Und
die kann man ganz bequem in der Menüleiste wechseln, bevor man auf
"Verbinden" geht.

Guido

Bego Mario Garde

unread,
Sep 20, 2002, 5:39:19 AM9/20/02
to
Philipp SŞsse wrote:
> Hast Du mal beim Umschalten den SppleScript-Rekorder mitlaufen lassen?

Da tut sich leider gar nix.

Bego

Bego Mario Garde

unread,
Sep 20, 2002, 5:41:29 AM9/20/02
to
Guido Mocken wrote:

> Ungeschickt, hatte ich auch zuerst so. Mach Dir lieber innerhalb einer
> Umgebung mehrere "Aktive Netzwerk-Anschlüsse". Der deutsche Name trügt
> hier, denn es handelt sich nicht (zwangsläufig) um verschiedene
> Hardware-Anschlüsse, sondern nur unterschiedliche Konfigurationen.

Cool! Klappt hervorragend.

Muß man erstmal darauf kommen, daß sich hinter "Ethernet/integriertes
Modem/usbmodem" nicht Hardware sondern Konfigurationen verbergen ...

Danke für den Hinweis!

Bego

Pascal Gienger

unread,
Sep 22, 2002, 5:08:35 AM9/22/02
to
ala...@gmx.net (Basar Alabay) wrote:

> Aber wozu sind dann eigentlich diese "Umgebungen" unterX gut?
> Und kann man nach Zeit was umstellen? UNter 9 ging das mit irgendeinem
> zeitgesteuerten Programm, welches die Einstellungsdatei einer "Umgebung"
> anklickt und damit die Umgebung eben startet ...

Unter OS X gibt es "scselect" im Terminal.

Syntax: scselect "name"

Mit "name" ist der Name Deiner OS X-Netzwerkumgebung.

Mittels "cron" kann man das zeitlich automatisieren.

Pascal

--
Pascal Gienger Scan my network fin...@gmx.de
Kanzleistrasse 14 and die. 167972935@icq
78462 Konstanz http://pgienger.de/ 07531/52709@pots

Pascal Gienger

unread,
Sep 22, 2002, 11:07:59 AM9/22/02
to
ala...@gmx.net (Basar Alabay) wrote:

> Pascal Gienger <fin...@gmx.de> wrote:
>
> > Mittels "cron" kann man das zeitlich automatisieren.
>

> Dem konnte ich allem folgen. Aber wie geht das nun praktisch? ;-)

Du hast für jeden Provider eine Netzwerkumgebung eingerichtet, richtig?
Dann ist es einfach:

1. "scselect" im Terminal eingeben. Du bekommst eine Liste Deiner
installierten Umgebungen angezeigt.
Sieht beispielsweise so aus:

Defined sets include: (* == current set)
0 (Automatic)
1 (Tesion Hotel)
* 2 (zuhause)
3 (Tesion Modem)
4 (Arcor by Call)
5 (Freenet)

2. Nehmen wir an, Du willst ab 18:00 Freenet benutzen bis 7 Uhr und in
der übrigen Zeit Arcor (hypothetisches Beispiel, Einträge 4 und 5 da
oben sind frei erfunden :) ).

Dann sieht das ja für den Computer so aus:
"Um 18 Uhr auf (Freenet) wechseln. Um 07:00 Uhr auf (Arcor by Call)
wechseln".

Wird Dein Setup komplizierter musst Du das als solche zeitliche
Abhängigkeit formulieren.

3. Gib ein:

sudo crontab -e

Du wirst nach Deinem Benutzerkennwort gefragt werden. Du erhältst
einen komischen Screen, der lauter Tilden enthält (als 1. Zeichen in
jeder Zeile) mit dem Cursor ganz oben links.
Nun ruhig Blut bewahren, das ist der (verhasste) vi!

4. Jede Zeile wird einem Umschaltprozesse entsprechen. Zuerst kommen 5
Werte, die einen Zeitpunkt definieren und dann das auszuführende
Kommando.
Unsere beiden Umschaltungen würden so aussehen:

0 18 * * * /usr/sbin/scselect 5
0 7 * * * /usr/sbin/scselect 4

Die 5 Stellen vorne bedeuten:
Minute Stunde Tag Monat Wochentag

"Wochentag" ist 0-6 mit 0=Sonntag.
"*" bedeutet: an allen Tagen/Monaten/Wochentagen.

Die Zahl hinter scselect gibt an welche Umgebung Du willst.

5. Das müssen wir nun eingeben:
Drucke SHIFT-A (der Cursor wird sich nicht ändern), die Statuszeile
unten wird verschwinden. Tippe die erste Zeile von oben ein (also
die mit "0 18 ..."). Zum Korrigieren nicht die Cursortasten benutzen
sondern nur mit "<-" Zeichen löschen. Auf keinen Fall "Cursor rauf"
und "runter". (Klar der "vi" kann mehr, aber das würde nun deutlich
zu ausführlich werden).
Nach Eingabe der ersten Zeile die Eingabetaste drücken und die
zweite Zeile eingeben. Wieder Eingabetaste drücken.

Dann: ESC drücken (links oben). Und dann Eingeben (die Eingabe kommt
links unten!):

:wq

6. Kommt der normale Shellprompt wieder hast Du gewonnen. Pünktlich
um 18 Uhr wird auf Freenet umgeschaltet werden, um 7 Uhr auf Arcor.

Achtung: Proxy-Einstellungen werden von vielen Programmen erst bei
dessen Neustart eingelesen. Mozilla benutzt diese Daten gar nicht.

Pascal "mal so ein richtiges NICHT-Mac-Like-Konfigurationsposting"
Gienger

Heiko (yes, nospam is a valid e-mail account)

unread,
Sep 22, 2002, 2:57:24 PM9/22/02
to
Pascal Gienger wrote:

> ala...@gmx.net (Basar Alabay) wrote:
>
> 0 18 * * * /usr/sbin/scselect 5
> 0 7 * * * /usr/sbin/scselect 4
>
>
> Pascal "mal so ein richtiges NICHT-Mac-Like-Konfigurationsposting"
> Gienger

Vielleicht dazu noch den Hinweis:
klappt nur dann zuverlässig, wenn der Rechner um 7 bzw. 18 Uhr an ist.
(es gibt glaub' ich cron-substitute, die damit anders umgehen, aber
die zu installieren braucht mehr NICHT-Mac-Like-Konfigurationspostings)

heiko

Stefan Haller

unread,
Sep 22, 2002, 3:12:41 PM9/22/02
to
Pascal Gienger <fin...@gmx.de> wrote:

> Unter OS X gibt es "scselect" im Terminal.

Danke für den Tip, nach sowas habe ich schon länger gesucht.

Problem: im Gegensatz zum manuellen Umschalten per "Location"-Menü führt
das Umschalten per scselect _nicht_ zum korrekten Neuschreiben von
/etc/resolv.conf, so daß nach dem Umschalten keine DNS-Auflösungen mehr
funktionieren. Damit ist scselect für mich leider erst mal unbrauchbar.

Ist das einfach nur ein Bug, oder mache ich etwas falsch? Welcher
Prozess sorgt beim Umschalten per Menü für das Neuschreiben von
/etc/resolv.conf?

Ich benutze 10.2.1.


--
Stefan Haller
Berlin, Germany
http://home.snafu.de/stk/

Christian Schmidt

unread,
Sep 23, 2002, 5:52:48 AM9/23/02
to
Stefan Haller <s...@snafu.de> wrote:

> Problem: im Gegensatz zum manuellen Umschalten per "Location"-Menü führt
> das Umschalten per scselect _nicht_ zum korrekten Neuschreiben von
> /etc/resolv.conf, so daß nach dem Umschalten keine DNS-Auflösungen mehr
> funktionieren. Damit ist scselect für mich leider erst mal unbrauchbar.
>
> Ist das einfach nur ein Bug, oder mache ich etwas falsch? Welcher
> Prozess sorgt beim Umschalten per Menü für das Neuschreiben von
> /etc/resolv.conf?

Das koenntest Du doch auch noch selbst implementieren:
Du legst Dir fuer jede "Umgebung" eine Datei an, also z.B. eine
"/etc/resolv.freenet" und eine "/etc/resolv.acor".
Dann erweiterst Du Deine crontab so, dass zur Zeit des Umschaltens die
jeweils aktuellen Eintraege in die eigentliche /etc/resolv.conf
geschrieben werden:
a b c d e /bin/cat /etc/resolv.arcor > /etc/resolv.conf
f g h i k /bin/cat /etc/resolv.freenet > /etc/resolv.conf

...wobei die vorangestellten Buchstaben durch die cron-Sysntax fuer den
jeweiligen Zeitpunkt zu ersetzen sind.

Gruss & hth,
Christian

Guido Mocken

unread,
Sep 23, 2002, 5:53:01 AM9/23/02
to
Basar Alabay <ala...@gmx.net> wrote:
> Aber wozu sind dann eigentlich diese "Umgebungen" unterX gut?

Na, für ihren ursprünglichen Zweck: Notebooks in wechselnden Umgebungen.
Ich habe auf dem PowerBook eine Umgebung "Büro" mit einer bestimmten
festen IP-Adresse (auf dem Ethernet), die ich in der Uni nutzen kann.
Und eine Umgebung "daheim", ebenfalls mit fester IP-Adresse
(192.168.1.1) für die rein lokale Vernetzung mit meinem alten Mac, sowie
mehrere PPP-Konfigurationen für's Modem.

Man muß bedenken, daß die "aktiven Netzwerk-Anschlüsse" eben wirklich
alle gleichzeitig aktiv sind (und obendrein noch die Reihenfolge wichtig
ist) - anscheinend mit Ausnahme der Wählverbindungen - während
Umgebungen nur alternativ gehen.

Guido

Pascal Gienger

unread,
Sep 23, 2002, 7:30:42 AM9/23/02
to
ChriS...@gmx.de (Christian Schmidt) wrote:

> Das koenntest Du doch auch noch selbst implementieren:
> Du legst Dir fuer jede "Umgebung" eine Datei an, also z.B. eine
> "/etc/resolv.freenet" und eine "/etc/resolv.acor".
> Dann erweiterst Du Deine crontab so, dass zur Zeit des Umschaltens die
> jeweils aktuellen Eintraege in die eigentliche /etc/resolv.conf
> geschrieben werden:
> a b c d e /bin/cat /etc/resolv.arcor > /etc/resolv.conf
> f g h i k /bin/cat /etc/resolv.freenet > /etc/resolv.conf

Oh bitte nicht so. :) Wozu gibt es denn cp(1)? ....

Stefan Haller

unread,
Sep 23, 2002, 9:40:47 AM9/23/02
to
Christian Schmidt <ChriS...@gmx.de> wrote:

> Das koenntest Du doch auch noch selbst implementieren:
> Du legst Dir fuer jede "Umgebung" eine Datei an, also z.B. eine
> "/etc/resolv.freenet" und eine "/etc/resolv.acor".

Das möchte ich aber nicht, denn /etc/resolv.conf wird auch vom OS
überschrieben, z.B. wenn über DHCP oder PPP ein DNS-Server mitgeliefert
wird.

scselect scheint aber auch sonst nicht zu funktionieren. Ich habe
Scripts, die darauf vertrauen, daß man mit scutil die aktuelle Umgebung
abfragen kann, ungefähr so:

scutil <<- EOT | awk 'BEGIN { FS = " : "} /UserDefinedName/ { print $2 } END { }'
open
show Setup:/
close
quit
EOT

Wenn ich mit scselect umschalte, gibt dieses Script weiterhin die alte
Umgebung aus. Mir scheint, daß das Umschalten per Menü noch irgendwas
anderes macht, was scselect nicht macht. (Irgendwelche daemons
neustarten?)

Thomas Kaiser

unread,
Sep 23, 2002, 10:02:51 AM9/23/02
to
Stefan Haller schrieb am 23.09.2002 15:40 Uhr in
<news:1fiyxn2.162rwek18kalakN%s...@snafu.de>:

> Mir scheint, daß das Umschalten per Menü noch irgendwas anderes macht, was
> scselect nicht macht. (Irgendwelche daemons neustarten?)

Ist nicht /usr/sbin/configd zuständig? Hast du mal probiert, dem ein 'kill
-HUP' zu senden?

Gruss,

Thomas

Stefan Haller

unread,
Sep 23, 2002, 10:36:25 AM9/23/02
to
Thomas Kaiser <Thomas...@phg-online.de> wrote:

Ja, das hilft nichts.

Dirk Taggesell

unread,
Sep 23, 2002, 11:12:05 AM9/23/02
to
Christian Schmidt wrote:

[...]


> a b c d e /bin/cat /etc/resolv.arcor > /etc/resolv.conf
> f g h i k /bin/cat /etc/resolv.freenet > /etc/resolv.conf

<http://www.ling.helsinki.fi/~reriksso/unix/award.html>

cp hätte es auch getan :-)

--
mit freundlichen Grüßen
Dirk Taggesell

Christian Schmidt

unread,
Sep 24, 2002, 4:44:13 AM9/24/02
to
Pascal Gienger <fin...@gmx.de> wrote:

> Oh bitte nicht so.

Warum denn nicht?

> :) Wozu gibt es denn cp(1)?

Zum Kopieren. ;-)

Gruss,
Christian

Christian Schmidt

unread,
Sep 24, 2002, 4:44:13 AM9/24/02
to
Basar Alabay <ala...@gmx.net> wrote:

> > ...wobei die vorangestellten Buchstaben durch die cron-Sysntax fuer den
> > jeweiligen Zeitpunkt zu ersetzen sind.
>

> Öhm, jetzt blick ich dat ja nun garnichtmehr ...

Dann schau mal in man crontab und/oder man 5 crontab.

...irgendwoher muss cron ja auch wissen, wann er etwas tun soll.

Gruss,
Christian

0 new messages