Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Personalizar mensagens de erro do Squid
Linux user
Publicado por Mateus em 29/06/2009

Login: mtarcinalli, 8052 pontos | Blog: http://mateusmachado.wordpress.com/
[ Hits: 4630 ]

Personalizar mensagens de erro do Squid

Estava querendo personalizar os arquivos com as mensagens de erro do Squid, colocando o logo da empresa nas mensagens. Resolvi o problema com o find + sed:

# find . -type f | while read NOME; do NOVO=`echo "$NOME"1`; sed '/<BODY>.*$/a Viva o Linux' $NOME > $NOVO; mv $NOVO $NOME; done

O que faz cada comando?

find . -type f:

Localizará os arquivos do diretório, você deverá executar esse script no diretório /usr/local/squid/share/errors/Portuguese (ou qualquer outro diretório onde se encontre suas mensagens de erro).

while read NOME; do

Armazenará na variável NOME o nome de cada arquivo encontrado.

NOVO=`echo "$NOME"1`;

Armazenará o nome do arquivo seguido do número 1, será um arquivo temporário a ser utilizado pelo sed.

sed '/<BODY>.*$/a Viva o Linux<hr>' $NOME > $NOVO;

Localizará o texto "<BODY>" e cada vez que localizar, irá adicionar "Viva o Linux<hr>". Isso será feito com o arquivo de nome $NOME e enviado para o arquivo $NOVO

mv $NOVO $NOME;

Para substituir o arquivo antigo pelo gerado através do sed.

done

Para finalizar o while.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Pegue vídeos em flash de sites com o comando "mv"
   Dica Linux recomendada Speedy Alcatel 1000 ADSL
   Dica Linux recomendada Gitso - Suporte remoto em redes com internet compartilhada
   Dica Linux recomendada Colabore para encontrar a cura para a "Gripe Suína"
   Dica Linux recomendada Enviando fórmulas em Latex pelo aMSN

Comentários
[1] Comentário enviado por davidsonpaulo em 30/06/2009 - 08:40h:

Salve Mateus,

Só pra acrescentar, isso pode ser feito com apenas um comando, a saber:

# find -type f -exec sed -i '/<BODY>.*$/a Viva o Linux<hr>' {} \;

Um abraço.

[2] Comentário enviado por davidsonpaulo em 30/06/2009 - 08:44h:

Opa, o comando que postei no primeiro comentário estava com alguns erros, mas já corrigi. :-)

Aproveitando, segue a explicação do comando acima.

A opção -exec é usada para que o find execute uma operação em todos os arquivos/diretórios encontrados durante a busca.

A opção -i do sed serve para fazer a alteração no próprio arquivo, dessa forma não é necessário gerar um arquivo temporário e depois substituir o original.

As duas chaves {} representam o arquivo encontrado pelo find.

Para terminar, o \; é um parâmetro obrigatório para indicar que o comando relacionado ao parâmetro -exec chegou ao fim.


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.