Configdatei für mehrere Bashscripte

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo!

    Ich setze gerade einen Raspberry neu auf.

    Dabei miste ich bei den Bashscripten fleißig aus, überarbeite sie und versuche alles etwas übersichtlicher zu gestalten.

    Ich würde gerne für die üblichen Angaben in Form von Variablen (z.B. Pfad, Maildaten, usw.) in einer gemeinsamen Configdatei auslagern, damit ich diese Angaben nicht in jedem einzelnen Script wiederholt einbauen muss.

    Wie setzt man das am besten um?

    Mein erster Gedanke:

    Wenn ich den Pfad (z.B. "cd /path1/path2") für alle Scripte in der Configdatei angebe, wie soll das Script wissen wo es selber ist und wo die Configdatei sicher liegt? Der Aufruf vom Script erfolgt ja oft nicht direkt aus dem Scriptverzeichnis raus.

    Oder geht es nur, wenn ich der Configdatei einen festen Platz gebe, der in Zukunft auch auf weiteren Systemen sich nicht ändert und ich somit die Scripte selber nicht mehr anpassen muss.

    Vielleicht denke ich auch zu kompliziert und habe einen Wurm in meiner Denkweise.

    Im Grunde liegen alle meine Scripte in dem gleichen Verzeichnis bzw. in einem Unterverzeichnis von diesem Verzeichnis. Die Configdatei würde ich da auch unterbringen.

    Mit der Bitte um "Erhellung"... ;)

    Viele Grüße,

    Peter

  • Der Dateiname ist auch nicht gut gewählt, denn es existiert ja schon ein Verzeichnis an selber Stelle mit diesem Namen.

    Wenn du versuchst, die Datei unter dem Namen zu speichern, wirst du das schon merken. :)

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Wenn ich das richtig verstehe, gibt es keine Ideallösung.

    Ich bin bei meinen Raspis der einzige Nutzer, sie sind auch alle ohne GUI, sprich nur über SSH ansprechbar. Meine Scripte laufen alle unter root.

    Als Scriptverzeichnis verwende ich immer=> /root/scripte

    Ich werde meine Configdatei nun "myconfig" nennen und hoffe, dass ich so keine Dateinamenkonflikte bekomme. Ich lege die Datei unter /root ab und binde sie in den Scripten mit ". ~/myconfig" ein.

    So habe ich die Übersicht und kann zentral Variablen bequem ändern.

    Gibt es Einwände? :-/

    Viele Grüße,

    Peter

    Einmal editiert, zuletzt von Peter0311 (14. Februar 2022 um 11:39)

  • Ich lege die Datei unter /root ab und binde sie in den Scripten mit ". ~/myconfig" ein.

    Die User haben doch gar keinen Zugriff auf /root.

    Mach das doch als User pi. Leg eine Datei in /home/pi/.config/myconfig an.

    Code
    echo 'PATH=$PATH:~/.config:~/.local/bin' >> ~/.profile
    echo "foo=bar" > ~/.config/myconfig
    mkdir -p ~/.local/bin
    echo -e '#!/bin/bash\nsource myconfig\necho $foo' > ~/.local/bin/info_info
    chmod +x ~/.local/bin/info_info

    Dann einmal ausloggen und wieder einloggen.

    Der Befehl info_info sollte dann bar ausgeben.

    Einmal editiert, zuletzt von RestlessMud46765 (14. Februar 2022 um 17:08) aus folgendem Grund: info umbenannt nach info_info um info nicht zu überlagern.

  • Es ist allerdings vielleicht ein bisschen ungeschickt, das doch ganz hilfreiche Linux-Kommando

    info auf diese Weise lahmzulegen (zu überblenden). ;)

    Ja, das stimmt.

    Wobei info ist eh ... :D

  • „Ich mache alles als root“ ist halt immer falsch.

    Grundsätzlich bin ich da ganz bei dir. Beim NAS, sowie dem PC beherzige ich das auch.

    Hier ist es aber so, dass ausschließlich ich über SSH und nur im eigenen Netzwerk Zugriff auf den Pi haben, sowie manche Scripte Rootzugriff brauchen (z.B. ein Sicherungsscript). Es "arbeitet" auch niemand auf dem Raspberry, sprich der soll nur seine Scripte immer wieder abarbeiten.

    Und daher mache ich da eine Ausnahme.

    Die User haben doch gar keinen Zugriff auf /root.

    Ich habe keine User auf dem Raspberry (außer pi, der nichts tut). Alle Scripte liegen im root-Ordner, alle Scripte laufen als root und haben somit auch Zugriff auf /root.

    Viele Grüße,

    Peter

  • Alle Scripte liegen im root-Ordner, alle Scripte laufen als root und haben somit auch Zugriff auf /root.

    Ja.. hm. Kommt mir bekannt vor. So eine Sünde habe ich auch begannen und das Problem ist, dass das auf c.a. 400 Geräten läuft.
    Das zu ändern, ist im Nachhinein nicht mehr so einfach.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!