
Ich frage mich, ob es Tools für den Einsatz in Bash-Skripten gibt, mit denen Sie problemlosmanipulieren(hinzufügen, entfernen, aktualisieren) Anweisungen in Konfigurationsdateien?
Beispielsweise hat fail2ban.conf gruppierte Anweisungen, jede in einem eigenen Abschnitt.
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
[postfix]
enabled = true
port = smtp,465,submission
wohingegen pagespeed.conf gemischte Anweisungen enthält, einige in eigenen Abschnitten und einige überall verteilt.
<Location /pagespeed_admin>
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
SetHandler pagespeed_admin
</Location>
<Location /pagespeed_global_admin>
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
SetHandler pagespeed_global_admin
</Location>
ModPagespeedMessageBufferSize 100000
ModPagespeedStatisticsLogging on
ModPagespeedEnableCachePurge on
ModPagespeedPurgeMethod PURGE
ModPagespeedFileCacheSizeKb 2048000
ModPagespeedFileCacheCleanIntervalMs 3600000
ModPagespeedFileCacheInodeLimit 500000
Du hast die Idee.
Gibt es Tools, mit denen Sie beispielsweise die Direktive „enabled“ im Abschnitt „proftpd“ von fail2ban.conf manipulieren können?
oder die Anweisung „Allow from“ im Abschnitt „Location /pagespeed_admin“ von pagespeed.conf manipulieren?
oder die Direktive „ModPagespeedMessageBufferSize“ im Abschnitt „kein bestimmter“ von pagespeed.conf manipulieren?
Danke
Antwort1
Nein, aus dem einfachen Grund, dass es einfach zu viele Formate gibt, die eine Konfigurationsdatei verwenden könnte. Ich denke, das Beste, was Sie tun können, ist, mithilfe von Textverarbeitungstools Ihr eigenes Format zu erstellen.
Es gibt möglicherweise Bibliotheken für einige Formate (z. B. JSON), aber die Autoren der Tools können jedes beliebige Format verwenden, sodass ein allgemeines Tool nicht möglich ist. Zur Veranschaulichung hier einige Zeilen aus einigen Konfigurationsdateien:
Emacs
;; Are we running XEmacs or Emacs? (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)) ;; disable menu bar when running in terminal (when (not (display-graphic-p)) (menu-bar-mode -1)) ;;My libraries, ebib, wordcount etc (add-to-list 'load-path "~/.emacs-lisp/")
vi
highlight Normal guibg=grey90 highlight Cursor guibg=Green guifg=NONE highlight lCursor guibg=Cyan guifg=NONE highlight NonText guibg=grey80 highlight Constant gui=NONE guibg=grey95 highlight Special gui=NONE guibg=grey95
Farbton
#--------------------------------------------- # BACKGROUND AND BORDER #--------------------------------------------- # general panel settings rounded = 7 border_width = 2 #background_color = #B4B2B2 10 background_color = #000000 30 border_color = #8F0004 0
vlc
# Trigger button (string) #gestures-button=left [motion] # motion control interface [oldrc] # Remote control interface # Show stream position (boolean) rc-show-pos=0
sshd
AuthorizedKeysFile .ssh/authorized_keys ChallengeResponseAuthentication no UsePAM yes
usw., usw.
Antwort2
Nicht wirklich, aber Sie könnten etwas für ein bestimmtes Konfigurationslayout erstellen. So etwas wie
sed -E "/\[proftpd]/,/\[/{s/(enabled\s*=\s*).*/\1false/}" input.file
könnte beispielsweise als Funktion zum Ändern von fail2ban.conf konzipiert werden.
Ich könnte es erweitern, wenn es überhaupt interessant wäre.