• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shell-Script

Hallo,

ich hab nur ne kurze frage, und zwar möchte ich über ein script einen eintrag in meine httpd.conf machen (am besten an eine bestimmte stelle) :oops: . Nur leider weiß ich nicht wie das so richtig geht.

Kann mir jemande nen tip geben ?!
 
Es geht natürlich über ein Shellscript bzw. direkt von der Shell aus:

Code:
echo "Eintrag was auch immer" >> httpd.conf

Das würde "Eintrag was auch immer" ans Ende der httpd.conf schreiben. Aber ich vermute mal Du willst eine Verwaltungsoberfläche für den Apache haben. Da müsste dann vielleicht doch mal mit einer anderen Scriptsprache (PHP, Python) ran, da ist das ein wenig einfacher.
 
Hallo,

danke für deine schnelle antwort, aber ist es möglich das ich den eintrag mitten in die datei kriege. Also nicht am anfang oder ende ?!
 
Datei komplett einlesen
Richtige Stelle finden
den eigenen Inhalt einfügen
Datei zurückschreiben

Würd ich aber nicht unbedingt emfehlen. Wenn Du was falsch machst, hast Du Dir u.U. alles versaut. Ausserdem sind bash Scripte nicht die schnellsten. Das ist prima, wenn man relativ einfache kurze Adminaufgaben lösen möchte. Aber für was komplexeres gibt es bessere Scripting-Möglichkeiten.

Den Vorschlag weiter oben sich mit dafür gedachten Scriptsprachen zu beschäftigen halte ich für sinnvoller. Die bringen i.d.R. schon maßgeschneiderte Funktionen mit, oft auch schön gekapselt in handliche und robuste Objekte. Da muss man sich dann etwas intensiver einlesen, aber Du gewinnst dadurch mehr Sicherheit und obendrein noch ein wenig Performance.
 
websearch schrieb:
aber ist es möglich das ich den eintrag mitten in die datei kriege. Also nicht am anfang oder ende ?!
Man könnte mit sed suchen und ersetzen. Beispiel mit dem Eintrag "Timeout":
Code:
 sed 's/^Timeout .*/Timeout 500/' httpd.conf > httpd.conf.new
Es gibt noch mehr Möglichkeiten. Zum Beispiel nach einem String suchen und nach diesem neue Zeilen einsetzen. Oder nach einer bestimmten Zeilennummer neue Zeilen einfügen. Aber dazu müsstest du dann dein Problem genauer schildern...
 
Damit die Änderungen auch übernommen werden muss der Apache die httpd.conf neu einlesen:
Code:
# rcapache reload
(oder bei Apache2)
# rcapache2 reload
(oder Apache 1.3.* mit Apache.org startscript)
# apachectl graceful
Ich schließe mich den Zweiflern an und halte es für keine gute Idee die globale Apache Config dynamisch zu ändern...
 
Oben