Tom: In Conf-Dateien auf Systemvariable zugreifen

Hello,

ich kämpfe mich so langsam duech die Serverkonfiguration.

Da ich shell-scripting auch nicht fit bin, hier eine generelle Farge:

In diversen Konfigurationsdateien von Daemons muss die IP des Hosts eingetragen werden. Wenn man die wechseln will, müsste man dann ja in allen Dateien frickeln.

Kann man die nicht generell beim Starten als Systemvariable exportieren und dann von den Daemon-Configs einlesen lassen?

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau

  1. hallo Tom,

    Du bewegst dich nahe an einem Doppelposting, und dein Ursprungsthread ist dabei endlich mal wieder einer, der richtig "hilfreich" zu werden verspricht und den zu verfolgen anregend sein könnte.

    In diversen Konfigurationsdateien von Daemons muss die IP des Hosts eingetragen werden.

    Woher nimmst du diese Erkenntnis?

    Kann man die nicht generell beim Starten als Systemvariable exportieren und dann von den Daemon-Configs einlesen lassen?

    Vermutlich kann man das - aber du scheinst die Rolle von /etc/hosts zu unterschätzen.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hello,

      Vermutlich kann man das - aber du scheinst die Rolle von /etc/hosts zu unterschätzen.

      Ich benötige statische IPs für alle Services.
      Anders kann ich später die Anfragen über Fritz-Boxen nicht an die Hosts leiten.
      Die können intern kein namensbasiertes Portforwarding.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  2. Hallo Tom!

    Fürs Auslesen der aktuellen (eigenen) IP eignet sich z.B. dieses Skript von Vinzenz.

    Servus

    --
    flowh .
    1. Hello,

      Fürs Auslesen der aktuellen (eigenen) IP eignet sich z.B. dieses Skript von Vinzenz.

      Danke, das werde ich morgen mal ausprobieren, wenn ich noch Zeit habe, ob ich die ausgelesene IP dann als Systemvariable setzen kann und vor allem, ob ich die dann in den Konfigurationsscripten der ganzen Daemons einbinden kann.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

    2. hallo flowh,

      Fürs Auslesen der aktuellen (eigenen) IP eignet sich z.B. dieses Skript von Vinzenz.

      Was Vinzenz da angegeben hatte, war kein "Script", sondern einfach nur eine Pipe. Das Auslesen der aktuellen IP würde auch etwas einfacher gehen - aber Tom hat offensichtlich deutlich andere Sorgen.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo Christoph.

        Das Auslesen der aktuellen IP würde auch etwas einfacher gehen

        Wie denn?

        Servus

        --
        flowh .
        1. Hallo flowh.

          Das Auslesen der aktuellen IP würde auch etwas einfacher gehen

          Wie denn?

          Mit diesem Monstrum z. B. welches auf die „default“-Route reagiert:

          $ /sbin/ifconfig | grep -A 1 `route | grep default | awk '{print $8}'` | tail -n 1 | awk '{print $2}' | cut -d ':' -f 2  
          84\.XXX.XXX.XXX
          

          Happy Piping.

          Gruß, Mathias

          --
          ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
          debian/rules
          1. Hallo Mathias,

            Das Auslesen der aktuellen IP würde auch etwas einfacher gehen
            Wie denn?

            Mit diesem Monstrum z. B. welches auf die „default“-Route reagiert:

            $ /sbin/ifconfig | grep -A 1 route | grep default | awk '{print $8}' | tail -n 1 | awk '{print $2}' | cut -d ':' -f 2

            84.XXX.XXX.XXX

              
            inwiefern ist dies einfacher als diese beiden:  
              
            ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'  
            ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1  
              
            siehe  
            </archiv/2007/1/t143984/#m934772>  
            </archiv/2007/1/t143984/#m934794>  
              
            Ich bin mir dessen bewußt, dass beide speziell auf eth0 abgestimmt sind;  
            dies zu verallgemeinern bleibt dem geneigten Leser als Übung überlassen.  
              
            Es ging Florian um eine einfachere Methode. An einer solchen wäre ich  
            ebenfalls interessiert. Beide Vorschläge aus meinen Postings sind im  
            zweiten Posting ausführlich erläutert.  
              
              
            Freundliche Grüße  
              
            Vinzenz
            
            1. Hallo Vinzenz.

              Das Auslesen der aktuellen IP würde auch etwas einfacher gehen
              Wie denn?

              Mit diesem Monstrum z. B. welches auf die „default“-Route reagiert:

              $ /sbin/ifconfig | grep -A 1 route | grep default | awk '{print $8}' | tail -n 1 | awk '{print $2}' | cut -d ':' -f 2

              84.XXX.XXX.XXX

              
              >   
              > inwiefern ist dies einfacher als diese beiden:  
              >   
              > ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'  
              > ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1  
                
              Stimmt, letzteres ist um ein vielfaches einfacher.  
                
              
              > siehe  
              > </archiv/2007/1/t143984/#m934772>  
              > </archiv/2007/1/t143984/#m934794>  
              >   
              > Ich bin mir dessen bewußt, dass beide speziell auf eth0 abgestimmt sind;  
              > dies zu verallgemeinern bleibt dem geneigten Leser als Übung überlassen.  
              >   
              > Es ging Florian um eine einfachere Methode. An einer solchen wäre ich  
              > ebenfalls interessiert.  
                
              Dann vielleicht so:  
                
              $ ifdata -pa ppp0  
              84\.XXX.XXX.XXX  
              (ifdata gehört zu den [moreutils](http://kitenet.net/~joey/code/moreutils/).)  
                
              Ist zwar kein Shellscript, liefert aber ohne Umwege die benötigte Information.  
                
                
              Einen schönen Sonntag noch.  
                
              Gruß, Mathias  
              
              -- 
              ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)  
                
              debian/rules
              
              1. Hallo Mathias!

                ifconfig | grep -A 1 route | grep default | awk '{print $8}' | tail -n 1 | awk '{print $2}' | cut -d ':' -f 2

                ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'

                ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1

                ifdata -pa ppp0

                Damit gäbe es dann schon vier Möglichkeiten. (Christophs Antwort hat mir irgendwie nicht weitergeholfen.)

                Danke für eure Antworten!

                Servus

                --
                flowh .
                1. Hallo

                  ifconfig | grep -A 1 route | grep default | awk '{print $8}' | tail -n 1 | awk '{print $2}' | cut -d ':' -f 2
                  ifconfig eth0 | awk /eth0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'
                  ifconfig eth0 | grep 'inet ' | cut -d ':' -f 2 | cut -d ' ' -f 1
                  ifdata -pa ppp0

                  Damit gäbe es dann schon vier Möglichkeiten. (Christophs Antwort hat mir irgendwie nicht weitergeholfen.)

                  Tja, mit ip scheint es auch nicht einfacher zu sein als mit ifconfig ...

                  ip -4 -o addr show eth0 | cut -d ' ' -f 7 | cut -d '/' -f 1

                  Freundliche Grüße

                  Vinzenz

            2. hallo Vinzenz,

              nur mal nebenbei: "ifconfig" kennen wir alle, aber es gibt eine neuere Möglichkeit:
                ip addr
              Bei Debian wird "ip" (wie es scheint) als Teil des Basissystems mitinstalliert, andere Distributionen haben es zwar auch in den Sourcen, aber man muß es sich dazuinstallieren.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Hello,

                das ist alles nicht so sicher, weil es auch noch von der eingestellten Sprache abhängig ist.
                Ich werde mich daher mal mit den System-Interrupts beschäftigen.
                Es gibt bestimmt eine Methode (eine Interrupt-Subroutine), die in einer Hochsprache genutzt sofort Auskunft auf die Frage gibt. Mittels eines kleinen Progrämmchens müsste es dann doch möglich sein, eine Systemvariable zu setzen. Linux ist ja schließlich nicht mehr DOS.

                Da hatte man echt Trouble, wenn man schreibend (persitstent) über das Environment hinausgreifen wollte. Zumindest war es eigentlich offiziell nicht vorgesehen und daher in jeder klapprigen Version anders.

                Harzliche Grüße vom Berg
                http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

                1. Tom,

                  von Deinem Ausgangspost ausgehend verstehe ich nicht, warum Du die Konfiguration der einzelnen Daemonen nicht einfach auf 0.0.0.0 setzt und Dir hier das Leben schwer machst.

                  Gruß aus Berlin!
                  eddi

                  1. Hello,

                    von Deinem Ausgangspost ausgehend verstehe ich nicht, warum Du die Konfiguration der einzelnen Daemonen nicht einfach auf 0.0.0.0 setzt und Dir hier das Leben schwer machst.

                    Wahrscheinlich bin ich zu blöd dafür...

                    Wie wissen die denn dann, auf welche IP sie hören müssen?
                    Ich habe in dem Host mehrere Karten; an die sind außerdem mehrere IPs gebunden.
                    Anders bekomme ich die Segmentierung nicht hin.

                    Nicht jedes Segment darf alles.

                    Harzliche Grüße vom Berg
                    http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau

                    1. Re:

                      Wie wissen die denn dann, auf welche IP sie hören müssen?

                      Das weiß der Kernel, wenn er in seine routing-Tabelle schaut. Einlesematerial: http://www.linux-user.de/ausgabe/2003/02/024-netzbasics/index.html, http://www.robidu.de/linux/routing/index.html und speziell für Deinen Fall http://www.informatik.uni-bremen.de/~mwiesner/howto-multinic.html

                      Ich habe in dem Host mehrere Karten; an die sind außerdem mehrere IPs gebunden.
                      Anders bekomme ich die Segmentierung nicht hin.

                      Nicht jedes Segment darf alles.

                      Mein Tip:

                      Setze lieber EINMAL das routing table individuell pro Maschine, als pro Maschine mehrere Konfigurationsdatein vor den Daemonstart überschreiben zu müssen.

                      Gruß aus Berlin!
                      eddi

  3. Hallo Tom,

    welcher Dienst verweigert denn mit einer konfigurierten IP-Adresse 0.0.0.0 ?

    Gruß aus Berlin!
    eddi