Hallo, ich würde gerne 2 unterscheidliche Provider benutzen, allerdings nicht (wie in der SDB vermerkt) gleichzeitig (d.h. alternativ), sondern abwechselnd (Sonntag und Feiertag über einen Telefonkostenprovider da XXL, sonst T-Online). Laut SDB können mehrere Provider nur per manueller Anwahl angewählt werden, da das System nicht weiß, welcher Provider gewählt werden soll. Ich hingegen kann dem System ja vorgeben, wann welcher provider gewählt werden soll, also ist das SuSE-Argument kein Grund... Wie stell ich das am besten an? Per Cron die Config-Dateien (welche überhaupt alle) umbenennen lassen oder besser gleich irgendwo ein Skript ablegen, das zumindest Sonntags den anderen Provider wählt? Feiertag werde ich wohl manuell umstellen müssen - oder halt alle Feiertage im Jahr von Hand irgendwo als ausnahmen eintragen. Hat das schon jemand hingekriegt oder muß ich als Versuch herhalten? ;-) Gruß, Thomas PS: SuSE 7.1 (Kernel 2.4) - zur Not kann ich den einen Provider per ISDN-Karte und den anderen per Telefonanlage anwählen. -- ____ _ _ _____ _ _ __ ___ ICQ-UIN: 50296694 (_ _)( )_( )( _ )( \/ ) /__\ / __) )( ) _ ( )(_)( ) ( /(__)\ \__ \ (__) (_) (_)(_____)(_/\/\_)(__)(__)(___/ mailto:suse-mail@tomhog.de
Am Mit, 28 Nov 2001 schrieb Thomas Hog:
ich würde gerne 2 unterscheidliche Provider benutzen, allerdings nicht (wie in der SDB vermerkt) gleichzeitig (d.h. alternativ), sondern abwechselnd (Sonntag und Feiertag über einen Telefonkostenprovider da XXL, sonst T-Online).
Laut SDB können mehrere Provider nur per manueller Anwahl angewählt werden, da das System nicht weiß, welcher Provider gewählt werden soll.
Ja, das ist schon richtig, Du kannst nur einen Provider auf Autodial setzen.
Ich hingegen kann dem System ja vorgeben, wann welcher provider gewählt werden soll, also ist das SuSE-Argument kein Grund... Wie stell ich das am besten an? Per Cron die Config-Dateien (welche überhaupt alle) umbenennen lassen oder besser gleich irgendwo ein Skript ablegen, das zumindest Sonntags den anderen Provider wählt?
Ich würde eine kombinierte Lösung vorschlagen. 1. Du änderst das Startskript (IIRC /etc/init.d/i4l, kann nicht nachgucken, da meine aktuelle Kiste kein isdn hat), so ab, daß das Autodial Flag (und evtl. die Defaultroute) nicht nach den Angaben in /etc/rc.config gesetzt werden sondern gemäß dem Wochentag, den Du über date bekommst. Außerdem läßt Du jede nacht um 0:00 einen Cronjob laufen, der die entsprechenden Einstellungen umsetzt. Somit fängst Du auch den Fall ab, daß Dein Rechner sonntags abends länger alsbis 12 an ist und Du deshalb den Provider wechseln musst.
Feiertag werde ich wohl manuell umstellen müssen - oder halt alle Feiertage im Jahr von Hand irgendwo als ausnahmen eintragen.
Sollte kein Problem sein.
PS: SuSE 7.1 (Kernel 2.4) - zur Not kann ich den einen Provider per ISDN-Karte und den anderen per Telefonanlage anwählen.
Sollte ebenfalls kein Problem sein. Gruß Christoph -- Christoph Maurer - Paul-Röntgen-Straße 7 - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Christoph Maurer am 29. November 2001:
Wie stell ich das am besten an? Per Cron die Config-Dateien (welche überhaupt alle) umbenennen lassen oder besser gleich irgendwo ein Skript ablegen, das zumindest Sonntags den anderen Provider wählt?
Ich würde eine kombinierte Lösung vorschlagen. 1. Du änderst das Startskript (IIRC /etc/init.d/i4l, kann nicht nachgucken, da meine aktuelle Kiste kein isdn hat), so ab, daß das Autodial Flag (und evtl. die Defaultroute) nicht nach den Angaben in /etc/rc.config gesetzt werden sondern gemäß dem Wochentag, den Du über date bekommst. Außerdem läßt Du jede nacht um 0:00 einen Cronjob laufen, der die entsprechenden Einstellungen umsetzt.
Ich habs jetzt soweit (Dank an Stefan Rauch) soweit hingekriegt, daß per Cron ein skript aufgerufen wird, das die alte Nummer bei isdncrtl gelöscht und die neue gesetzt wird und dann auch noch die /etc/ppp/options.ippp0 angepaßt wird (btw einfach das jeweilige Backup hinkopiert wird). Der Haken ist jetzt nur noch, daß ich jedesmal erst per YaST(1) im ISDN-Menü die Einstellungen testen lassen muß, damit auch was geht. Sonst wird zwar die richtige Nummer gewählt, die Paßwortübergabe scheitert aber. Irgdnwas muß ich da also noch ändern/aufrufen - nur was genau?
Somit fängst Du auch den Fall ab, daß Dein Rechner sonntags abends länger alsbis 12 an ist und Du deshalb den Provider wechseln musst.
Die Ausnahme wäre eher "...daß dein Rechner mal Sonntag abend aus ist und somit die Wochenend-Einstellung noch für die Werktage gilt" da der rechner seit ein paar Monaten friedlich freundlich auf dem Speicher rumsteht ;-) Gruß, Thomas -- Ist schon irgendwie bezeichnend, daß der schnellste von der Menscheit geschaffene Rechner für Berechnungen zur Vernichtung derselben genutzt wird. Beam me up Scotty, there´s no intellegent life on this planet. ['derpixelmeister' im heise-Forum zu "ASCI White soll Atomtests simulieren"]
On Mon, Dec 03, 2001 at 10:50:32PM +0100, Thomas Hog wrote:
Ich habs jetzt soweit (Dank an Stefan Rauch) soweit hingekriegt, daß per Cron ein skript aufgerufen wird, das die alte Nummer bei isdncrtl gelöscht und die neue gesetzt wird und dann auch noch die /etc/ppp/options.ippp0 angepaßt wird (btw einfach das jeweilige Backup hinkopiert wird).
Der Haken ist jetzt nur noch, daß ich jedesmal erst per YaST(1) im ISDN-Menü die Einstellungen testen lassen muß, damit auch was geht. Sonst wird zwar die richtige Nummer gewählt, die Paßwortübergabe scheitert aber. Irgdnwas muß ich da also noch ändern/aufrufen - nur was genau?
/etc/rc.d/i4l stop ippp0 /etc/rc.d/i4l start ippp0 /etc/rc.d/route start -- Klaus Franken, mail@klaus.franken.de ------------------------------------------------------------ D O N ' T P A N I C !!! ------------------------------------------------------------ Uptime: Linux 2.2.19, 160 Days, 1 Hours
Klaus Franken am 4. Dezember 2001:
Der Haken ist jetzt nur noch, daß ich jedesmal erst per YaST(1) im ISDN-Menü die Einstellungen testen lassen muß, damit auch was geht. Sonst wird zwar die richtige Nummer gewählt, die Paßwortübergabe scheitert aber. Irgdnwas muß ich da also noch ändern/aufrufen - nur was genau?
/etc/rc.d/i4l stop ippp0 /etc/rc.d/i4l start ippp0 /etc/rc.d/route start
Ne, das wars nicht :-( Hier mal mein Skript: | #!/bin/bash | # (c) Stefan Rauch 15.08.2001 | | # ISDN Gerät setzen | ISDN_DEV=ippp0 | | # Varibale mit Argument initialisieren | PROVIDER=$1 | . /etc/ppp/${PROVIDER} | | # Telefonnummer des alten Providers | TEL_OLD=`isdnctrl list ippp0 | awk '{print $2}' | sed -e '6! d'` | | # chap-secrets mit den Parametern für den neuen Provider schreiben | # echo \"$LOGIN_PROV\"' '\*' '\"$PASSWORD_PROV\" > /etc/ppp/chap-secrets | | cp /etc/ppp/options.ippp0-$1 /etc/ppp/options.ippp0 | | # Telefonnummer des alten Providers löschen und die des neuen setzen | isdnctrl delphone $ISDN_DEV out $TEL_OLD | isdnctrl addphone $ISDN_DEV out $TEL_NEW | | /etc/rc.d/i4l stop ippp0 | /etc/rc.d/i4l start ippp0 | /etc/rc.d/route start Die options.ippp0 unterscheiden sich durch die unterschiedlichen User-Namen, die dort richtig drinstehen. Wenn ich zB './switch_provider 1und1xxxl' aufrufe, wird die options.ippp0 auch korrekt kopiert; nur die Nummer wird eben nichnt gewählt: | router:/etc/ppp # less 1und1xxl | TEL_NEW=040808065661111 | LOGIN_PROV=1und1/*******@online.de | PASSWORD_PROV=************ Die Nummer sollte soweit ich das sehe richtig übernommen werden (ich hab den Rest mal zensiert)... Aber dann in /var/log/messages: | Dec 10 15:32:45 router kernel: isdn_tx_timeout dev ippp0 dialstate 0 | Dec 10 15:32:45 router kernel: OPEN: 192.168.0.99 -> 194.25.2.129 UDP, port: 63126 -> 53 | Dec 10 15:32:45 router kernel: ippp0: dialing 1 0191011... | Dec 10 15:32:45 router kernel: isdn_net: ippp0 connected | Dec 10 15:32:45 router ipppd[28553]: Local number: 920349, Remote number: 0191011, Type: outgoing | Dec 10 15:32:45 router ipppd[28553]: PHASE_WAIT -> PHASE_ESTABLISHED, ifunit: 0, linkunit: 0, fd: 8 | Dec 10 15:32:45 router ipppd[28553]: Remote message: 0012 PSOFF001 0179194297 test user | Dec 10 15:32:45 router ipppd[28553]: PAP authentication failed | Dec 10 15:32:46 router ipppd[28553]: LCP terminated by peer (sorry für die überlangen Zeilen) ==> Da wird scheinbar die T-Online Nummer gewählt, User/Pass werden aber von 1und1 genommen -> Einwahl wird abgewiesen. *Wo* bzw *was* muß ich jetzt noch umstellen, daß es geht? Im YaST1 stehnt auch noch die alte Nummer :-( Nach nem manuelen Test gerade hab ich folgende snoch gesehen: Vor dem Start & Stop von I4L und dem Start von route stimmt die outgoing Nummer noch. Wird das aber alles neu gestartet, steht wieder die T-Online-Nummer drin. In beiden Fällen geht die Einwahl jedenfals nicht... | router:/etc/ppp # isdnctrl list ippp0 | | Current setup of interface 'ippp0': | | EAZ/MSN: 920349 | Phone number(s): | Outgoing: 0191011 | Incoming: [...] | PPP-Bound to: 0 | | router:/etc/ppp # isdnctrl delphone ippp0 out 0191011 | | router:/etc/ppp # isdnctrl list ippp0 | | Current setup of interface 'ippp0': | | EAZ/MSN: 920349 | Phone number(s): | Outgoing: [...] | PPP-Bound to: 0 | | router:/etc/ppp # isdnctrl addphone ippp0 out 019102345 | router:/etc/ppp # isdnctrl list ippp0 | | Current setup of interface 'ippp0': | | EAZ/MSN: 920349 | Phone number(s): | Outgoing: 019102345 | Incoming: [...] | PPP-Bound to: 0 | | router:/etc/ppp # /etc/rc.d/i4l stop | Shutting down network device and ipppd for ippp0. | ippp0 deleted | | router:/etc/ppp # /etc/rc.d/i4l start | Verbose-level set to 3. | Starting isdn4linux on device ippp0 | ippp0 added | EAZ/MSN for ippp0 is 920349 | Layer-2-Protocol for ippp0 is hdlc | Layer-3-Protocol for ippp0 is trans | Encapsulation for ippp0 is syncppp | Security for ippp0 is on | Hangup-Timeout for ippp0 is 60 sec. | Charge-Hangup for ippp0 is off | Incoming-Hangup for ippp0 is off | Dialmax for ippp0 is 3 times. | Callback for ippp0 is off | Callback delay for ippp0 is 2 sec. | Reject before Callback for ippp0 is on | Setting up network device ippp0 | Starting ippp-daemon for ISDN device ippp0 with /etc/ppp/options.ippp0 | | done | ippp0 bound to 0 | | router:/etc/ppp # isdnctrl list ippp0 | | Current setup of interface 'ippp0': | | EAZ/MSN: 920349 | Phone number(s): | Outgoing: 0191011 | Incoming: [...] | PPP-Bound to: 0 Gruß, Thomas -- Ist schon irgendwie bezeichnend, daß der schnellste von der Menscheit geschaffene Rechner für Berechnungen zur Vernichtung derselben genutzt wird. Beam me up Scotty, there´s no intellegent life on this planet. ['derpixelmeister' im heise-Forum zu "ASCI White soll Atomtests simulieren"]
Hallo Thomas
Die options.ippp0 unterscheiden sich durch die unterschiedlichen User-Namen, die dort richtig drinstehen. Wenn ich zB './switch_provider 1und1xxxl' aufrufe, wird die options.ippp0 auch korrekt kopiert; nur die Nummer wird eben nichnt
ich habe zwar nicht dein Skript,(habe es mich einfacher gemacht) hatte aber ähnliches Problem. Hiermal mein (Möchtegern)-Skript, vielleicht kannst Du daraus erkennen, was ich mir beim rumkopieren gedacht habe bzw. wie ich es verwirklicht habe! Die scripts werden per cron-Job pünktlichst aufgerufen ;-) ---snip---- # bin/sh # #switch.sunday-provider.sh # rcroute stop rci4l stop cp /etc/ppp/sunday.options.ippp0 /etc/ppp/options.ippp0 cp /etc/ppp/sunday.chap-secrets /etc/ppp/chap-secrets cp /etc/ppp/sunday.pap-secrets /etc/ppp/pap-secrets cp /root/isdn/sunday.i4l.rc.config /etc/rc.config.d/i4l.rc.config rci4l start rcroute start ----snap---- Nicht lästern, es funktioniert!!! Für normale Tage werden dann die normal.options.ippp0 nach options.ippp0 kopiert und so weiter. Hoffe es hilft bye Michael -- GnuPG KeyID:A173E8E2 Fingerprint:0A99 AD01 CFAB 5B52 C11A A9E1 D3AC 89FC A173 E8E2
Michael John am 10. Dezember 2001:
Hallo Thomas
Die options.ippp0 unterscheiden sich dur0ch die unterschiedlichen User-Namen, die dort richtig drinstehen. Wenn ich zB './switch_provider 1und1xxxl' aufrufe, wird die options.ippp0 auch korrekt kopiert; nur die Nummer wird eben nichnt
ich habe zwar nicht dein Skript,(habe es mich einfacher gemacht) hatte aber ähnliches Problem. [...] /etc/rc.config.d/i4l.rc.config [...]
Exakt das wars. Keine Ahnung, warum meine Plattenweit eSuche nach 0191011 diese Datei nicht ausgespuckt hat :-(
Hoffe es hilft bye Michael
Tat es ;-) Gruß, Thomas -- Monkey Island, Maniac Mansion, Zak McKracken, Indiana Jones? Infos zu allen LucasArts-Adventures und den Klassikern von LucasFilm-Games übersichtlich & hübsch verziert,... -> und mit grandiosem Gaestebuch auf *** http://www.tentakelvilla.de ***
On Tue, Dec 11, 2001 at 10:49:12AM +0100, Thomas Hog wrote:
Michael John am 10. Dezember 2001:
Hallo Thomas
Die options.ippp0 unterscheiden sich dur0ch die unterschiedlichen User-Namen, die dort richtig drinstehen. Wenn ich zB './switch_provider 1und1xxxl' aufrufe, wird die options.ippp0 auch korrekt kopiert; nur die Nummer wird eben nichnt
ich habe zwar nicht dein Skript,(habe es mich einfacher gemacht) hatte aber ähnliches Problem. [...] /etc/rc.config.d/i4l.rc.config [...]
Exakt das wars. Keine Ahnung, warum meine Plattenweit eSuche nach 0191011 diese Datei nicht ausgespuckt hat :-(
Hi, gut wenn's jetzt geht. Aber warum macht Ihr Euch die Welt so kompliziert? Im YaST gibt es die Möglichkeit mehrere Provider zu konfigurieren, z.B. T-Online auf ippp0 und 1&1 auf ippp1. (Bug in den isdn4k-utils: es muss immer ippp0 geben) Beide Interface werden vollständig konfiguriert, dh. z.B.: - Telefonnummer unter /etc/rc.config.d/ - Username in /etc/ppp/options.ippp0 bzw. options.ippp1 - Passwörter in /etc/ppp/[p,ch]ap-secrets Insbesondere: in der pap-secrets bzw. chap-secrets können mehrere Zeilen mit mehreren Passwörtern stehen. Die gültige Zeile wird aufgrund des Usernamens in der options.ippp? gesucht. Um jetzt zu steuern, welches Interface aktiv sein soll, kann man einfach das Routing umstellen, z.B. route del default route add deefault dev ippp0 Dazu kein Default-Route in YaST eintragen. Für Fortgeschrittene: Im obigen Bsp. sind einfach alle Interface aktiv, es wird aber jeweils nur eines angesprochen (wegen Routing). Man kann sich jetzt noch in der /etc/rc.config die Extensions der Devices raussuchen, z.B.: NETDEV_1="eth0" NETDEV_1="ippp0" NETDEV_2="ippp1" Und damit die Variable NETCONFIG (auch rc.config) setzen, z.B.: NETCONFIG="_0 _1" um nur eth0 und ippp0 zu benutzen (nach Änderung /etc/rc.d/i4l restart) und "route add default ....) Siehe Bug-Beschreibung oben: es muss imer ippp0 geben Lösung: einfach ein Dummy auf ippp0 definieren (ohne Nr. etc) und dann zwischen ippp1 und ippp2 switchen. -- Klaus Franken, mail@klaus.franken.de ------------------------------------------------------------ D O N ' T P A N I C !!! ------------------------------------------------------------
Klaus Franken am 11. Dezember 2001:
gut wenn's jetzt geht. Aber warum macht Ihr Euch die Welt so kompliziert?
Im YaST gibt es die Möglichkeit mehrere Provider zu konfigurieren, z.B. T-Online auf ippp0 und 1&1 auf ippp1. (Bug in den isdn4k-utils: es muss immer ippp0 geben) [...]
Weil in der SDB nur steht, daß bei 2 Providern im YaST kein Auto- Dialing mehr geht... Aber so hab ich das ja auch hingekriegt - war für mich halt einfach die DAU-Tauglichste Version: Die Dateien die eingelesen werden verändern und Feierabend *g* Gruß, Thomas PS: Wenns dann doch geht, wärs IMHO ein Fall für die SDB -- Benutze Hamster mit Mikrowelle - Schalte ein Mikrowelle *peng* - Nimm Hamster - "Hmm! Brust oder Keule?" [Syd/Razor im Grafik-Adventure "Maniac Mansion" (Lucasfilm Games, 1987)] http://www.tentakelvilla.de - Die Seite zu den LucasArts-Adventures
On Tue, Dec 11, 2001 at 12:40:23PM +0100, Thomas Hog wrote:
Klaus Franken am 11. Dezember 2001:
gut wenn's jetzt geht. Aber warum macht Ihr Euch die Welt so kompliziert?
Im YaST gibt es die Möglichkeit mehrere Provider zu konfigurieren, z.B. T-Online auf ippp0 und 1&1 auf ippp1. (Bug in den isdn4k-utils: es muss immer ippp0 geben) [...]
Weil in der SDB nur steht, daß bei 2 Providern im YaST kein Auto- Dialing mehr geht...
Du meinst http://sdb.suse.de/de/sdb/html/bg_zweiprovider.html ? Der Artikel ist ziemlicher Murks.
Aber so hab ich das ja auch hingekriegt - war für mich halt einfach die DAU-Tauglichste Version: Die Dateien die eingelesen werden verändern und Feierabend *g*
PS: Wenns dann doch geht, wärs IMHO ein Fall für die SDB
Dafür bin ich nicht mehr zuständig ;-) Karsten? -- Klaus Franken, mail@klaus.franken.de ------------------------------------------------------------ D O N ' T P A N I C !!! ------------------------------------------------------------ Uptime: Linux 2.2.19, 1 Days, 5 Hours
Klaus Franken am 11. Dezember 2001:
Du meinst http://sdb.suse.de/de/sdb/html/bg_zweiprovider.html ? Der Artikel ist ziemlicher Murks.
*Ich* hab ihn auch nicht geschrieben ;-)
Aber so hab ich das ja auch hingekriegt - war für mich halt einfach die DAU-Tauglichste Version: Die Dateien die eingelesen werden verändern und Feierabend *g* PS: Wenns dann doch geht, wärs IMHO ein Fall für die SDB Dafür bin ich nicht mehr zuständig ;-) Karsten?
*lol* Naja, du hast ja auch andere, dringender zu lösende Probleme: | Uptime: Linux 2.2.19, 1 Days, 5 Hours ^^^^^^^^^^^^^^^ Da ist ja mein Windows noch stabiler :-p SCNR, Thomas -- Monkey Island, Maniac Mansion, Zak McKracken, Indiana Jones? Infos zu allen LucasArts-Adventures und den Klassikern von LucasFilm-Games übersichtlich & hübsch verziert,... -> und mit grandiosem Gaestebuch auf *** http://www.tentakelvilla.de ***
Am Die, 11 Dez 2001 schrieb Thomas Hog:
Klaus Franken am 11. Dezember 2001:
Du meinst http://sdb.suse.de/de/sdb/html/bg_zweiprovider.html ? Der Artikel ist ziemlicher Murks.
*Ich* hab ihn auch nicht geschrieben ;-)
Aber so hab ich das ja auch hingekriegt - war für mich halt einfach die DAU-Tauglichste Version: Die Dateien die eingelesen werden verändern und Feierabend *g* PS: Wenns dann doch geht, wärs IMHO ein Fall für die SDB Dafür bin ich nicht mehr zuständig ;-) Karsten?
*lol*
Verstehe ich nicht? Du weißt, wer Klaus Franken ist?
Naja, du hast ja auch andere, dringender zu lösende Probleme: | Uptime: Linux 2.2.19, 1 Days, 5 Hours ^^^^^^^^^^^^^^^ Da ist ja mein Windows noch stabiler :-p
Du rebootest also nie, ja? Meine Kiste wird sogar täglich gebootet, da ich nicht einsehe, daß sie, wenn ich am Tag 3 Stunden wach und zu Hause bin, 24 Stunden läuft. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Am Montag 03 Dezember 2001 22:50 schrieb Thomas Hog:
Christoph Maurer am 29. November 2001:
Wie stell ich das am besten an? Per Cron die Config-Dateien (welche überhaupt alle) umbenennen lassen oder besser gleich irgendwo ein Skript ablegen, das zumindest Sonntags den anderen Provider wählt?
Also - sorry - ich habe den anfang dieses threads nicht mitbekommen, aber ich geh mal davon aus, daß dies hier für dich /euch nützlich sein könnte: ich hatte vor einigen wochen einen ähnlichen thread gestartet, und das skript von magnus (siehe unten) leistet mir gute dienste. hilfe: einfach ein ippp0 mit beliebigen isdndaten konfigurieren, mit den infos von der suse datenbank (zum beispiel!) ein zweites device ippp1 für multikanal einrichten, dann hier in dieses skript die echten zugangsdaten einfügen, und dieses skript per cronjob zu den richtigen zeit ausführen lassen. bei wird mir zb: um 0900 morgens ngi aktiviert, um 1800 freenet und sonntags nutze ich ngixxl als xxl kunde der telekom und ngi kunde (2kanal kostenlos, keine automatische trennung vom provider) (ungetestet: ippp2,3...x bleiben von dem skript unangetastet - hab ich aber noch nicht überprüft..., aber da könnte man dann auch noch zusätzliche rovider ins spiel bringen.) zwei probleme habe ich allerdings noch, vielleicht habt ihr dazu hilfe: a) wenn eine verbindung um 0900 ode 1800 besteht, wird diese natürlich getrennt und downloads müssen danach resumed werden. ein if-test wäre wünschenswert, der nur wenn gerade keine verbindung besteht, das skript ausführt, sonst wartet, bis die verbindung abgebaut ist und erst danach den providerwechsel macht. das übersteigt aber schon meine bashprogrammierkenntnisse (shame on me) b) zur änderung des providers sind rootrechte nötig (zum einen wegen der schreibrecht an den betreffenden konfigdateien, zum anderen wegen des "rci4l restart". alle mir bis jetzt bekannten lösungen gefallen mir nicht, weil sie entweder sicherheitslöcher aufreißen oder nicht sinnvoll funktionieren. frage: wie kann ein user hiermit den provider wechseln, ohne daß gleich das ganze isdnsystem für nicht-rootler zugänglich ist? danke! markus ---------- Weitergeleitete Nachricht von Magnus Rosenbaum ---------- Subject: Re: [suse-isdn] mppp - mit dial-up verbindungen Date: Thu, 11 Oct 2001 22:06:22 +0200 From: Magnus Rosenbaum <rosenbau@informatik.uni-muenchen.de> To: Markus Feilner <mfeilner@f-linux.com> Cc: suse-isdn@suse.com, uwe <uweschindler@web.de> Markus Feilner wrote:
hm - hört sich sehr gut an, wenn das auch zweikanal unterstützt und das feature addlink/removelink funktioniert - sehr gerne. wie schauts aus mit automatic hangup on incoming call?
wenn das alles bei deinem skript klappt, dann hast du wirklich gute arbeit geleistet
Wenns auch ohne das Skript (mit nur einem Provider) funktioniert hat, dann funktionierts auch mit. Da greift das Skript ja auch garnicht ein. Das Skript läuft nur einmal kurz, wenn Du offline bist und den Provider für die nächste Einwahl wechseln willst. Also hier mal der Code: begin ------------------------------------- #!/bin/bash # # /root/bin/provider # Providerwechsler für ISDN # # (C) 2001 by Magnus Rosenbaum # # Syntax: provider PROVIDERNAME # Als root aufrufen ################################### # Hier die Providerdaten eintragen: # name1="xxx" phon1="" user1="" pass1="" # name2="xxx" phon2="" user2="" pass2="" # easycall # Mo-Fr 9-18 Uhr 2,9 Pf/min, sonst 1,9 Pf/min, 1s-Takt name3="easycall" phon3="01925842" user3="easycall" pass3="easynet" # name4="xxx" phon4="" user4="" pass4="" # name5="xxx" phon5="" user5="" pass5="" # freenet # 9-18 Uhr 2,9 Pf/min, sonst 1,7 Pf/min, 60s-Takt name6="freenet" phon6="01019019231750" user6="x" pass6="x" # name7="xxx" phon7="" user7="" pass7="" # name8="xxx" phon8="" user8="" pass8="" ############################################################## ############################################################## name=$1 if [ $name = $name1 ]; then phon=$phon1 user=$user1 pass=$pass1 elif [ $name = $name2 ]; then phon=$phon2 user=$user2 pass=$pass2 elif [ $name = $name3 ]; then phon=$phon3 user=$user3 pass=$pass3 elif [ $name = $name4 ]; then phon=$phon4 user=$user4 pass=$pass4 elif [ $name = $name5 ]; then phon=$phon5 user=$user5 pass=$pass5 elif [ $name = $name6 ]; then phon=$phon6 user=$user6 pass=$pass6 elif [ $name = $name7 ]; then phon=$phon7 user=$user7 pass=$pass7 elif [ $name = $name8 ]; then phon=$phon8 user=$user8 pass=$pass8 else echo "provider: Kein Provider ausgewählt!" exit; fi echo "provider: Provider $name ($phon,$user,$pass) ausgewählt" ############################################### # /etc/ppp/options.ippp0 generieren echo "provider: Generiere /etc/ppp/options.ippp0 mit user $user" of="/etc/ppp/options.ippp0" echo "# /etc/ppp/options.ippp0 automatically generated" > $of echo "/dev/ippp0 /dev/ippp1" >> $of echo "+mp" >> $of echo "netmask 255.255.255.255" >> $of echo "user \"$user\"" >> $of echo "name \"$user\"" >> $of echo "ipcp-accept-local" >> $of echo "ipcp-accept-remote" >> $of echo "noipdefault" >> $of echo "-vj" >> $of echo "-vjccomp" >> $of echo "-ac" >> $of echo "-pc" >> $of echo "-bsdcomp" >> $of # Hier evtl. mru und mtu anpassen echo "#mru 1524" >> $of echo "#mtu 1500" >> $of echo "noccp" >> $of echo "ms-get-dns" >> $of ############################################### # /etc/ppp/pap-secrets generieren echo "provider: Generiere /etc/ppp/pap-secrets mit user $user und pass $pass" of="/etc/ppp/pap-secrets" echo "\"$user\" * \"$pass\"" > $of echo >> $of of="/etc/ppp/chap-secrets" echo "\"$user\" * \"$pass\"" > $of echo >> $of ############################################### echo "provider: /etc/init.d/i4l restart" /etc/init.d/i4l restart ############################################### echo "provider: Lösche alte Telefonnummern" outgoing=` /usr/sbin/isdnctrl list ippp0 | grep "Outgoing:" ` for oldphone in $outgoing do if [ $oldphone != "Outgoing:" ]; then /usr/sbin/isdnctrl delphone ippp0 out $oldphone fi done outgoing=` /usr/sbin/isdnctrl list ippp1 | grep "Outgoing:" ` for oldphone in $outgoing do if [ $oldphone != "Outgoing:" ]; then /usr/sbin/isdnctrl delphone ippp1 out $oldphone fi done ############################################### echo "provider: Trage Nummer von Provider $name ein: $phon" /usr/sbin/isdnctrl addphone ippp0 out $phon /usr/sbin/isdnctrl addphone ippp1 out $phon ############################################### # Zum anzeigen des aktuellen Providers #echo $name >> /root/.provider /usr/sbin/isdnctrl list all ############################################## end ------------------------------------------------ Ich hab mir dazu eine Anzeige gebaut, damit ich sehen kann, welcher Provider grade aktuell ist: root-tail -i 1 -color black -g 20x1+82+0 /root/.provider& Wenn der Rechner hochgefahren wird, sollte das Skript einmal laufen, um sozusagen den Default-Provider einzustellen.
*dickes lob* - unter vorbehalt ;-)
Danke für Dein Interesse. Ich muss allerdings schon zugeben, dass der Code sehr dirty ist ;-) Ich finde es schon _sehr_ merkwürdig, dass so ein Tool nicht bei den üblichen Distris eingebaut ist, obwohl es ja fast jedem Linux-mit-ISDN-zuhause User sehr viel bringt. Viel Spass damit, Magnum -- begin http://www.informatik.uni-muenchen.de/~_rosenbau/ ------------------------------------------------------- -- may you always grok in fullness ( http://w3.one.net/~wap/wapGrok.html ) -- from/von/de >mfeilner@f-linux.com< Markus Feilner --------------------------- Linux, Webdesign, Erlangerstr. 2 --------------------------- IT-Consulting 93059 Regensburg ----- 0941/706523--------mobil: 0170/3027092
On Wed, Dec 05, 2001 at 06:20:21PM +0100, Markus Feilner wrote:
frage: wie kann ein user hiermit den provider wechseln, ohne daß gleich das ganze isdnsystem für nicht-rootler zugänglich ist?
sudo Bsp dazu findest Du im (uralten) ISDN-HOWTO, z.B. unter www.franken.de/users/klaus -- Klaus Franken, mail@klaus.franken.de ------------------------------------------------------------ D O N ' T P A N I C !!! ------------------------------------------------------------ Uptime: Linux 2.2.19, 162 Days, 2 Hours
participants (5)
-
Christoph Maurer
-
Klaus Franken
-
Markus Feilner
-
Michael John
-
Thomas Hog