Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [OPGELOST]Hosts automatische aanpassen  (gelezen 2948 keer)

[OPGELOST]Hosts automatische aanpassen
« Gepost op: 2009/03/07, 12:05:20 »
Hallo allemaal,

Ik heb een server thuis staan en die wil ik kunnen bereiken onder een naam.
Nu weet ik niet hoe je dit in een bash script kan bereiken.
het idee is als volgende

if($netwerknaam == "netwerk"){
cp /etc/hosts.local /etc/hosts
}else{
cp /etc/hosts.buiten /etc/hosts
}

En deze wil ik dan zo'n 30 seconden na opstarten uitvoeren.

Wie kan me helpen om hier een script (opstartscript) van te maken
« Laatst bewerkt op: 2009/03/07, 21:08:43 door Dennisgroot »

Re: Hosts automatische aanpassen
« Reactie #1 Gepost op: 2009/03/07, 13:00:20 »
Bedoel je met netwerknaam de hostname?

Re: Hosts automatische aanpassen
« Reactie #2 Gepost op: 2009/03/07, 15:11:53 »
Nee de naam van het wlan netwerk bijvoorbeel (linksys1, 3com, eduroam)

EIgenlijk om mijn probleem te omschrijven.
Van in mijn netwerk is de server te bereiken met 192.168.1.*
en van buiten is die te bereiken met 123.456.789.10.
Nu wil ik hem altijd kunnen bereiken met het woordje server.
Dat kan in /etc/hosts. Nu verander ik steeds het hosts file aan binnen of buiten het netwerk.
Het zou erg mooi zijn als dat automatische kan door een of ander scriptje die ik laat meestarten bij het opstarten.

Re: Hosts automatische aanpassen
« Reactie #3 Gepost op: 2009/03/07, 15:21:27 »
Ehm, ik snap het probleem niet?

Offline track

  • Lid
Re: Hosts automatische aanpassen
« Reactie #4 Gepost op: 2009/03/07, 15:33:51 »
Hoi Dennis,

begrijp ik het goed dat je alleen een (of twee) starters wilt hebben met welke je de verbinding naar je "thuis"-server kunt aanzetten ?

Dat is vrij makkelijk te doen dmv een regel in de /etc/fstab.
Ik heb er b.v. staan://192.168.178.30/fs1 /media/fs1 cifs users,credentials=/home/[naam]/.smbcredentials 0 0
En bij deze heb ik een starter om mijn server te "mounten".
In jouw geval zullen dat misschien twee starters zijn, een voor "binnen" en een voor "buiten".

(En het zou kunnen dat er achter "users," nog een parameter bij moet,
  want ik heb gedeeltelijk problemen de "mount" zonder root-rechten te doen. Zie hierbij ook:  http://wiki.ubuntu-nl.org/fstab )

track
« Laatst bewerkt op: 2009/03/07, 15:35:51 door track »

Re: Hosts automatische aanpassen
« Reactie #5 Gepost op: 2009/03/07, 16:33:00 »
Het komt dichterbij maar nog niet wat ik zoek.

Ik wil mijn hosts file automatische laten veranderen dus als ik binnen mijn netwerk ben
192.168.1.*   server
en als ik buiten mijn netwerk ben
145.*.*.*       server

Zodat als ik ergens server invul (bijvoorbeeld in de terminal ssh server) hij altijd naar mijn server gaat.
Dit vooral zodat ik mijn mail kan ophalen van mijn server en unison kan syncroniseren.
Nu verander ik dus steeds mijn hosts bestand, zodat het altijd het goede ip bevat.
Als ik binnen mijn netwerk ben (192.168.1.*) en buiten (145.*.*.*)

Voorbeeldje:
In unison staat bijvoorbeel bij een backup ssh://dennis@server//home/dennis/Afbeeldingen
deze haalt dus server uit het hosts bestand en ziet dan dat daar 192.168.1.* staat.
En als ik mij binnen het netwerk bevind ziet die de server dus.

Maar nu ben ik op school. Dan ziet hij nog steeds 192.168.1.* en de server staat daar niet.
Dus hij vindt niks. Ik moet dan nu hosts aanpassen en 192.168.1.* veranderen in 145.*.*.*
Nu wil ik dat de computer er zelf achter komt dat hij niet meer thuis staat en dus automatische het juiste ip-adres vindt.

Ik ken php daar zou het er ongeveer zo uit zien (natuurlijk kan het niet in php)
if($netwerknaam_wlan == "linksys1"){
cp /etc/hosts.local /etc/hosts (hier zou dan 192.168.1.* in staan)
}else{
cp /etc/hosts.buiten /etc/hosts (en hier 145.*.*.* in staan
}

De sterretjes staan er omdat ik niet iedereen mijn ip adres wil geven ;)

Offline vanadium

  • Lid
Re: Hosts automatische aanpassen
« Reactie #6 Gepost op: 2009/03/07, 16:41:00 »
Je IP adres van buiten je lokaal netwerk zal toch ook werken van binnen je netwerk? (uiteraard iets trager dan wanneer je de lokale IP gebruikt.)

Offline track

  • Lid
Re: Hosts automatische aanpassen
« Reactie #7 Gepost op: 2009/03/07, 16:45:37 »
En als je gewoon één ping naar het desbetreffende adres stuurt ?
De "exit status" verklapt of het gelukt is (in bash zit die in $?).
En dan toch even de config's ruilen.

(Een handleiding heb je in  http://www.gnulamp.com/bashprogramming.html )

track

Re: Hosts automatische aanpassen
« Reactie #8 Gepost op: 2009/03/07, 16:49:00 »
@vanadium
Nop dat werkt niet. Je gaat dan uit je router en die is te dom om te zien dat hij dat ip-adres zelf heeft.
Heb het nog even getest maar hij doet het niet.

@track
Ga het zeker even doorlezen. Het lijkt me sowieso heel erg handig.
Je kan er veel dingen mee automatiseren.
Thanks

Als je er eentje wilt ophoesten voor me zou het heel mooi zijn.

« Laatst bewerkt op: 2009/03/07, 16:56:37 door Dennisgroot »

Offline track

  • Lid
Re: Hosts automatische aanpassen
« Reactie #9 Gepost op: 2009/03/07, 16:58:33 »
 ping zal je in de handleiding trouwens niet vinden. t'Is een geval voor man ping of http://linux.die.net/man/ (trefwoord "ping").

De handleiding is gewoon dat je makkelijker naar bash kunt omschakelen.

track

Offline vanadium

  • Lid
Re: Hosts automatische aanpassen
« Reactie #10 Gepost op: 2009/03/07, 17:38:02 »
Citaat
@vanadium
Nop dat werkt niet. Je gaat dan uit je router en die is te dom om te zien dat hij dat ip-adres zelf heeft.
Heb het nog even getest maar hij doet het niet.
Eigenaardig. Want hoe kan je de server dan van buiten je netwerk wél benaderen?

Uiteraard zal, als je het "algemeen" adres, gebruikt, je router eerst naar "buiten" moeten om op de gewone manier via internet de server te bereiken.

Re: Hosts automatische aanpassen
« Reactie #11 Gepost op: 2009/03/07, 18:13:34 »
het doet het echt niet :P
Hij blijft buiten denk zoeken, en geeft het dan op den duur op met geen route to host.

Maar ik kom een heel eind met het advies van track, heel erg bedankt.

Eigenlijk kan je het natuurlijk ook heel makkelijk doen door 2 scripts op je bureaublad te zetten
Een voor de buiten hosts en een voor de local hosts.

Maar zo leer je veel en dat is mooi meegenomen

Het is trouwens gelukt.
Dit is het script
#!/bin/bash
ping ip-adres van buiten -c 4
if [ $? = 1 ]; then
cp /etc/hosts.local /etc/hosts
else
cp /etc/hosts.buiten /etc/hosts
fi

Re: Hosts automatische aanpassen
« Reactie #12 Gepost op: 2009/03/07, 20:47:12 »
Nog een probleempje hoe laat ik dit automatische starten als root.
Ik had hem toegevoegd aan rc.local
door hem in /etc/init.d/ te zetten en dan
sudo update-rc.d netwerkip defaults in te voeren.
Maar toen liep hij helemaal vast met opstarten en afsluiten.
Heb het kunnen verhelpen door in recovery modus het terugtedraaien.

Heeft iemand een idee hoe ik dit eenmaal kan uitvoeren bij opstarten?

Edit:
het liefst wil ik geen crontab gebruiken want dan blijft hij bezig over het netwerk
« Laatst bewerkt op: 2009/03/07, 20:51:45 door Dennisgroot »

Offline vanadium

  • Lid
Re: Hosts automatische aanpassen
« Reactie #13 Gepost op: 2009/03/07, 20:52:27 »
/etc/rc.local is een eenvoudig tekstbestandje waarin je je commando's kan opnemen. Dat bestand wordt voor elk runlevel op het einde van de bootsequentie uitgevoerd.

Re: Hosts automatische aanpassen
« Reactie #14 Gepost op: 2009/03/07, 21:08:25 »
Jep maar het liet het dus vastlopen om de een of andere reden.
Misschien omdat ik sleep erin  had staan dat de rest tegenhoud om te starten ofzo

Maar de oplossing:

eerst copierde ik het script naar
/etc/netwerk/if-up.d/netwerkip

daarna heb ik toegevoegd in /etc/netwerk/interfaces:
auto wlan0
post-up /etc/network/if-up.d/netwerkip

Dit hoeft niet, heeft geen toegevoegde waarde na testen


En nu doet hij het perfect.
Wat een hoop weer bijgeleerd vandaag :D
Bedankt voor al jullie hulp!!
« Laatst bewerkt op: 2009/03/07, 21:10:34 door Dennisgroot »