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