![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
|
#1 |
|
Inventar
![]() |
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 |
|
|
|
|
|
#2 |
|
Master
![]() Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611
|
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. |
|
|
|
|
|
#3 | ||
|
Inventar
![]() |
Zitat:
Zitat:
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 |
||
|
|
|
|
|
#4 |
|
Master
![]() Registriert seit: 10.10.2002
Beiträge: 711
|
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 |
|
|
|
|
|
#5 |
|
Master
![]() Registriert seit: 24.02.2002
Ort: Wien
Alter: 40
Beiträge: 611
|
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. |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|