Lendo configuração [RESOLVIDO]

1. Lendo configuração [RESOLVIDO]

Jean Santos
jeansantos

(usa CentOS)

Enviado em 23/06/2012 - 10:20h

Olá a todos, há algum tempo acompanho a comunidade viva o linux, mas não havia me registrado, hoje foi realmente necessário.. Bom pessoal, estou há 2 meses criando um painel de administração de linux, onde vai rodar um arquivo shell, criei ele todinho, terminei-o já, mas acho que está desorganizado, pois cada ambiente necessitará de configurar suas informações em um diretório chamado "/home/config/", onde iria configurar apache, acesso phpmyadmin e etc.. No andamento do projeto, criei vários arquivos como apache.conf, pois eu não conseguir criar um único arquivo, onde o shell script efetuaria a leitura... Eu hoje uso O seguinte comando...

`more /home/config/apache.conf | grep APACHE | awk -F= '{print $2}'`
`more /home/config/pma.conf | grep PUXAPMA | awk -F= '{print $2}'`
`more /home/config/backup.conf | grep BACKUP | awk -F= '{print $2}'`

Como podem ver, todos têm um arquivo diferente, gostaria de juntá-los e fazer o script efetuar a leitura correta, já olhei mais de 500 link's com diferentes formas, mas nenhum me ajudou muito, pois o shell parava de efetuar a leitura ou lia a linha errada, ocasionando problemas... Gostaria de uma ajuda, se possível.. Desde já agradeço.


  


2. Re: Lendo configuração [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 23/06/2012 - 13:54h

Como assim leitura correta? Qual o problema em usar diversos arquivos?

Tenho uma rotina que atualiza uma aplicação shell que usa diversos arquivos online, para isso nas estações uso um script que verifica se o servidor esta ativo e depois baixa a nova versão do script tudo em um único arquivo, talvez seja algo parecido com o que vc quer:


#!/bin/bash
# Culpado: Raimundo Portela - rai3mb[a]gmail.com

function func_montaScript() {
ARQUIVO="$1"

LINHA_INICIAL=( $(egrep -ni '^##BEGIN@.*' "$ARQUIVO" | cut -d: -f1 | xargs ) )

for i in $( seq $(( ${#LINHA_INICIAL[@]} - 1 )) )
do
INICIO=${LINHA_INICIAL[$i - 1]}
FIM=$(( ${LINHA_INICIAL[$i]} - 1 ))
QTD=$(( ( $FIM - $INICIO ) ))
NOME_SCRIPT=$( head -n$INICIO "$ARQUIVO" | tail -n1 | egrep -o '@.*' | cut -d'@' -f2 )
head -n$FIM "$ARQUIVO" | tail -n$QTD > "$NOME_SCRIPT"
done

}


Com isso vc poderia montar seu arquivo de configuração único mais ou menos assim:



##BEGIN@apache.conf

asdasdasd

adsasd
asdad


##BEGIN@source.list

asdad
asd
asda
d
asd

##BEGIN@END



Veja se pode ser adaptado ao seu caso...




3. Re: Lendo configuração [RESOLVIDO]

Jean Santos
jeansantos

(usa CentOS)

Enviado em 23/06/2012 - 14:52h

rai3mb,

Agradeço seu feedback, mas esse sistema já tinha usado anteriormente, e me gerou dores de cabeça.. O motivo de unir todas as configurações em um único arquivo.conf, é para facilitar a configuração dos usuários, pois como dito.. cada ambiente teria sua configuração especifica.


4. Re: Lendo configuração [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 23/06/2012 - 22:45h

Ok, e sobre o script postado, com ele vc pode colocar as configurações em um único arquivo e ler de acordo com alguma expressão regular...




5. Re: Lendo configuração [RESOLVIDO]

Jean Santos
jeansantos

(usa CentOS)

Enviado em 15/07/2012 - 19:39h

Lhe agradeço muito rai3mb, sua ajuda foi de suma importância para o lançamento de meu painel.. Valeu :)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts