Categories: Linuxweb

Recarregando arquivo de configuração do varnish sem reiniciar

Esse script é uma adaptação do script do Kristian Lyngstol para reload das configuraçõess do varnish.

O script do Kristian funciona muito bem, mas o problema é que a cada reload ele mantem a vcl antiga na memoria, ficando assim lixo na RAM do servidor varnish. Com as modificações que efetuei ele manda um discard pras configurações antigas então a config fica na memoria apenas até todos objetos de cache relacionados a mesma tenham seu tempo expirado.

Sem mais milongas, o script:

#!/bin/bash
# Reload a varnish config
# Author: Kristian Lyngstol
# Corrigido, otimizado e adaptado por Felipe Braz || linux [arroba] portalaces.com

#Arquivo de configuração
FILE="/etc/varnish/default.vcl"

#Executaveis
VARNISHADM="/usr/local/bin/varnishadm"
AWK="/bin/awk"
GREP="/bin/grep"

# Hostname and management port
# (defined in /etc/default/varnish or on startup)
HOSTPORT="127.0.0.1:23"
NOW=`date +%s`

error()
{
    echo 1>&2 "Erro ao reccaregar $FILE"
	### NOTA: Recomendo por aqui a sua linha para restart do varnish, asism se der erro no reload, ele envia um restart
    exit 1
}

$VARNISHADM -T $HOSTPORT vcl.load reload$NOW $FILE || error
$VARNISHADM -T $HOSTPORT vcl.use reload$NOW || error

for i in `$VARNISHADM -T $HOSTPORT vcl.list |$GREP available |$AWK '{print $3}'`;do $VARNISHADM -T $HOSTPORT vcl.discard $i; done

echo Current configs:
$VARNISHADM -T $HOSTPORT vcl.list
Felipe Braz

Recent Posts

online ansible vault tool

A criação e validação de credenciais seguras em ansible sempre gera um pouco de dor…

2 anos ago

Magento e o mistério do servidor somente-leitura

Dia desses, um dos meus servidores entrou com o sistema de arquivos / em modo…

5 anos ago

Localização de arquivos .desktop no ubuntu

O launcher do ubuntu não fornece muitas opções me relação aos icones, muitas vezes apps…

5 anos ago

Ordenar array por tamanho em php

Três meios diferentes para a mesma finalidade: Usando funções nativas do PHP (recomendado): array_multisort(array_map('strlen', $array),…

5 anos ago

Adicionar suporte a rc.local no ubuntu 16.04 ou superior

Embora um script muito útil para tarefas de inicialização de um servidor, essa funcionalidade se…

5 anos ago

API json registro.br gratuita

Pra que precisa de uma API pra consultar domínios .br é só utilizar a pagina…

5 anos ago