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

Função javascript para imprimir pagina ao carregar

Tenho usado essa e funciona bem 😉

<script language="JavaScript" type="text/JavaScript">
<!--
function chromePrint(){
print();
}
function chromePrintDelay(){
setTimeout("print()", 500);
}
var browserName=navigator.appName;
if (browserName=="Microsoft Internet Explorer")
{
window.print();
}
else
  {
  if (browserName=="Netscape") //google chrome app.Name
  {
  chromePrintDelay();
  }
  else {
   window.onload = window.print; // helps with Opera
   }
   }
//-->
</script>