WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 20.11.2008, 11:32   #1
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard Config File erzeugen vor Programmstart?

Hallo,

wie üblich ists mit meinem Linux Kenntnissen nicht weit her, darum hier mein derzeitiges Problem:

Meine kleine Ubuntu rennt in einer VM, damit ich sie jederzeit und überall mit haben kann.

Da drinn laufen halt einige Sache u.a. ein Wonderland Server, in dessen Config File muss die IP Adresse festgelegt sein und genau zu diesem Grund möchte ich vor Start das File mit der aktuellen IP Adresse starten (welche sich ja dauernd ändert)

Wie stell ich sowas am einfachsten an?

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 20.11.2008, 11:42   #2
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Ich weisz nicht, was ein Wonderland-Server ist, und wozu der deine IP-Adresse braucht, aber wenn es um die IP-Adresse eines Interfaces in deinem Rechner geht, auf dem ein Port gebunden werden soll, dann reicht es idR, einfach "0.0.0.0" als Wildcard fuer alle verfuegbaren einzugeben.

Wenn du die IP-Adresse brauchst, die dein ISP an deinen Anschluss vergibt, unddu hinter NAT bist, wird das ganze ein bisschen (aber nicht viel) komplizierter. Meld dich halt nochmal hier, solltest du das brauchen.
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Alt 20.11.2008, 12:46   #3
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

Zitat:
was ein Wonderland-Server ist
ist auch nicht wirklich notwendig, aber falls es dich wirklich interessiert -> https://lg3d-wonderland.dev.java.net/

Zitat:
und wozu der deine IP-Adresse braucht
durch div. Einstellungen lässt sich beeinflußen woher sich der Client die Daten zur Darstellung holt, in meinem Fall wäre, dies der Server auf den er connected, nur leider ist halt die SW etwas unausgereift, darum muss sie im Config File stehen.

Im Endeffekt ist das Ganze File ein reiner Fixtext, nur an ein paar Stellen gehört halt die IP eingetragen

Jetzt wäre mein Lösungsansatz:

ein Musterconfigfile umkopieren auf den wirklich zu nutzenden Namen <- bring ich zusammen
die aktuelle IP des Ethernetsadapters zu ermitteln <- bring ich nicht zusammen
einen Fixtext/Dummytext in dem umkopierten File mit der ermittelten IP zu ersetzen -> auch hier mangelts mir an Wissen

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 20.11.2008, 17:31   #4
m@rio
Master
 
Registriert seit: 10.10.2002
Beiträge: 711


Standard

Erstell dir eine vorlage.conf in der du alle Vorkommen der IP durch %IP% ersetzt.
Dann sollte das mit dem Script funktionieren.

cp vorlage.conf deinconfigfile.conf
IP=`ifconfig eth0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}'`
sed -i "s/%IP%/$IP/g" deinconfigfile.conf


deinconfigfile.conf musst du halt durch den namen+pfad von deiner Datei ersetzen
m@rio ist offline   Mit Zitat antworten
Alt 21.11.2008, 13:24   #5
colossus
Master
 
Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611


Standard

Prinzipiell wuerde ich dir raten,. fuer sowas `sed` als eine Art primitiver Templating Engine zu verwenden. Du kopierst dir dein Config-File an irgendeinen Ort im Dateisystem, ersetzt dort drinnen den Text, den du im EIGENTLICHEN Configfile ersetzen willst (in deinem Fall eben die IP) durch einen moeglichst eindeutigen Token, machst es dort schreibgeschuetzt. Dann fuehrst du `sed` so aus, dass der Token in einem Substitute-Statement durch den tatsaechlichen, wie auch immer errechneten Wert ersetzt wird, und leitest das ganze via Output Redirection in das eigentliche Config-File.

Wenn du z. B. ##IPADDR## als Token verwenden willst, etwa so:
Code:
#/bin/bash
TMP_IP="$(/sbin/ip addr show eth0 | awk '(NR==3){split($2,a,"/"); print a[1]}')"
sed "s/##IPADDR##/${TMP_IP}/g" /path/to/template.conf > /path/to/real.conf
/start/wonderland/here
____________________________________
Free Software. Free Society. Better Lives.
colossus ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:49 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag