Linux skript

Gast #3728378
Lesenswert?
• ▲
▼
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
Gast #3728386
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren