
Gostaria de saber se existem ferramentas para uso em scripts bash que possam facilmente permitir que vocêmanipular(adicionar, remover, atualizar) diretivas dentro de arquivos conf?
por exemplo, fail2ban.conf agrupou diretivas, cada uma em suas próprias seções.
[proftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
[postfix]
enabled = true
port = smtp,465,submission
enquanto o pagespeed.conf possui diretivas mistas, algumas em suas próprias seções e outras distribuídas por toda parte.
<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
Você entendeu a ideia.
Existem ferramentas que permitem: por exemplo, manipular a diretiva 'enabled' na seção 'proftpd' do fail2ban.conf?
ou manipular a diretiva 'Permitir de' na seção 'Local /pagespeed_admin' do pagespeed.conf?
ou manipular a diretiva 'ModPagespeedMessageBufferSize' na seção 'no particular' do pagespeed.conf?
Obrigado
Responder1
Não, pela simples razão de que existem muitos formatos que um arquivo de configuração pode usar. O melhor que você pode fazer, eu acho, é criar o seu próprio usando ferramentas de processamento de texto.
Pode haver bibliotecas para alguns formatos (JSON, por exemplo), mas os autores de ferramentas são livres para usar qualquer formato que desejarem, portanto uma ferramenta geral não será possível. Apenas para ilustrar o ponto, aqui estão algumas linhas de alguns arquivos conf:
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
matiz
#--------------------------------------------- # 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
etc etc.
Responder2
Na verdade não, mas você poderia construir algo para um layout de configuração específico. Algo como
sed -E "/\[proftpd]/,/\[/{s/(enabled\s*=\s*).*/\1false/}" input.file
poderia ser projetado como uma função para alterar fail2ban.conf, por exemplo.
Eu poderia expandir se fosse interessante.