Personalizar mensagens de erro do Squid
Dica publicada em Linux / Internet
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.
# 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.
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.