Hallo, ich benötige Hilfe bei einem Linux Skript um eine manuelle Eingabe/Änderungen per Skript zu lösen. Im Nachfolgenden sind die einzelnen Schritte die ich per manuell durchführe aufgelistet: 1)vi lighttpd_conf 2)suchen nach cat << EOF server.document-root = "$docroot" EO 3)ergänzen durch server.max-request-size=100000000 server.upload-dirs=( " uploads" ) server.network-backend = "writev" Ergebnis: cat << EOF server.document-root = "$docroot" server.max-request-size=100000000 server.upload-dirs=( " uploads" ) server.network-backend = "writev" EOF 4)mkdir uploads 5)chown wwwrun:wwwrun uploads 6)lighttpd starten. Kann mir jmd. Dazu ein kurzes Linux Skript schreiben? Wäre super genial :) Danke
Martin schrieb: > Hallo, ich benötige Hilfe bei einem Linux Skript um eine manuelle > Eingabe/Änderungen per Skript zu lösen Es gibt kein "Linux Skript", vermutlich ist ein shellscript gemeint Was spricht gegen ein cp angepaste_config backup Cp backup umangepaste_config Sonst wird das womöglich ziemlich kompliziert...
Als Lösungsansatz: Keine Ahnung ob vi für sowas das richtige Werkzeug ist, normal macht man relativ viel mit sed in Skripten. Der Suchen & Ersetzen Teil in dem Script könnte das hier sein - Vorsicht, ungetested.
1 | sed -i.org -e 's#\(^[[:space:]]*server\.document-root[[:space:]]*=[[:space:]]*"\$docroot"[[:space:]]*$\)#\1\nserver.max-request-size=100000000\nserver.upload-dirs=( " uploads" )\nserver.network-backend = "writev"#g' lighttp.conf |
Das lässt das docroot intakt und fügt die zeilen hinten an. Wenn das docroot wirklich ersetzt werden soll, muss das in etwa so aussehen:
1 | sed -i.org -e 's#^[[:space:]]*server\.document-root[[:space:]]*=[[:space:]]*"\$docroot"[[:space:]]*$#server.max-request-size=100000000\nserver.upload-dirs=( " uploads" )\nserver.network-backend = "writev"#g' lighttp.conf |
Zur Sicherheit machen beide sed-Teile ein Backup der Datei, Dateiname *.org. Wenn sed mit 'sed -i -e ...',also ohne .org aufgerufen wird, dann fällt das weg - ist aber keine gute Idee. Falls da Fehler drin sind: google nach sed hilft. Ich verhau mich da ganz gern mal, weil sed ein wenig komisch ist welche Teile eines regex mit \ escaped werden müssen und welche nicht. Der Rest ist trivial, der letzte Teil (6.) abhängig von der verwendeten Distribution bzw. initsystem, typischerweise sowas wie "service lighttpd restart" bzw. besser sogar "service lighttpd reload". Der ganze Kram wird als root, ggf. via sudo laufen müssen.
LOL schrieb: > Keine Ahnung ob vi für sowas das richtige Werkzeug ist, normal macht man > relativ viel mit sed in Skripten. vi basiert wie sed auf ed. Die sind also gar nicht so verschieden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.