Zum Inhalt springen

Apache-Config per Script ändern


geloescht_JesterDay

Empfohlene Beiträge

Also,

ich hab mir hier ein Script geschrieben, welches die Apache-Config um einen eintrag Erweitert und anschließend die Config neu lädt. Das ist soweit auch kein Problem gewesen, nur hab ich zum Testen immer nur nonsense verwendet. Bei der Angabe eines richtigen Pfades (geht um das Hinzufügen von Location-Anweisungern) kommt es zu Problemen mit den Slashes (/) im Pfad.

Hier mal mein skript:


!/bin/bash

# 1 Parameter = Location Pfad

if [ $# = 1 ]; then

  # Apache Config-Datei die geändert wird

  CONF_PATH=/etc/apache2/sites-available/vhost.conf

  # Config Datei kopieren

  cp ${CONF_PATH} ${CONF_PATH}.bak

  # neue Location in Config-Datei

  # Ende von VirtualHost finden und durch neuen Eintrag ersetzen

  sed "/<\/VirtualHost>/s//  <Location $1>\n    DAV svn\n    SVNParentPath \/srv\/subversion$1\n  <\/Location>\n<\/VirtualHost>/" ${CONF_PATH} > ${CONF_PATH}.new

  # neue Datei umbenennen

  mv -f ${CONF_PATH}.new ${CONF_PATH}

  # Apache Config neu einlesen

  apache2ctl graceful

else

  echo "Anzahl Parameter nicht ok!"

fi


Das funktioniert soweit auch, nur wenn ich als Parameter "/pfad" o.ä. angebe, meckert sed wegen dem Slash. Auch die Angabe von "\/pfad" als Parameter ändert nichts.

Hat jemand eine Idee, wie ich das anders tun könnte? Mit tr ersetzen hab ich auch schon probiert, aber tr ersetzt nur 1 Zeichen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 Wochen später...

moin!

Das Problem tritt auf, weil sed dein / als sonderzeichen nicht korrekt interpretiert, dazu musste dein Script anpassen:

--Weil das Zeichen "/" für sed ein Sonderzeichen ist, muss jedem "/" ein "\" vorangestellt werden. Manchmal wird dies benötigt, um einem Sonderzeichen die besondere Bedeutung zu "entziehen". Außerdem sind die einfachen Anführungszeichen (') vor und hinter dem Ersetzungskommando wichtig, weil die Shell sonst versucht, einige der Zeichen wie '#', '$' oder '\' zu ersetzen bevor sie an sed weitergereicht werden. Unter Windows müssen Sie doppelte Anführungszeichen verwenden ("). Windows ersetzt Zeichen wie '%' grundsätzlich, hier müssen Sie eventuell ein wenig experimentieren.--

---hier---

Ergo musst du dein Script noch ein wenig anpassen, dann sollte das ganze

auch laufen.

Gruss s3sn1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...