среда, 17 октября 2012 г.

Как почистить кэш Squid

Нет, не целиком удалить. А вычистить оттуда лишнее, то, что не нравится или нужно освежить.

Задача, в общем-то, тривиальная для того, кто оборудован мозгом. Не все, однако им оборудованы - это во-первых, а во-вторых, лично мне влом вспоминать команду каждый раз, когда такая задача встает. 

Напишем красивый ленивчик, не содержащий лишних и ненужных движений:


#!/bin/sh
# Purge object(s) from Squid cache
AWK=`which awk`
GREP=`which grep`
XARGS=`which xargs`
SQUIDCLIENT="/usr/local/squid/bin/squidclient"

SQUID_LOG="/data/cache/log/access.log"

$GREP "$1" $SQUID_LOG | $AWK '{print $7}' | $XARGS $SQUIDCLIENT -m PURGE

Порядок. Положить в /usr/local/bin, дать права на выполнение и пользоваться на здоровье. Аргументом можно задавать домен, маску имени, расширение файлов.

Если не хочется на отсутствующий объект получать ругань клиента - добавьте опцию -s.