Squid清除缓存

在这里详述 Squid清除缓存。

squid清除Cache命令总结 

批量清除Cache的工具:

http://www.wa.apana.org.au/~dean/squidpurge/

wget http://www.wa.apana.org.au/~dean ... 20040201-src.tar.gz

tar zxvf purge-20040201-src.tar.gz

cd purge

make

清除Squid缓存示例:

  1、清除 URL 以“.mp3”结尾的缓存文件(例如 http://www.s135.com/abc.mp3、http://www.s135.com/01/a.mp3)

./purge -p localhost:80 -P 1 -se '\.mp3$'

  2、清除URL中包含s135.com的所有缓存:

./purge -p localhost:80 -P 1 -se 's135.com'

  我喜欢将程序推到后台去执行,让它慢慢地去清Squid缓存,同时将输出内容记录到purge.log文件:

./purge -p localhost:80 -P 1 -se 's135.com' > purge.log 2>&1 &

= 方法二 =

脚本 clear_squid_cache.sh 

#!/bin/sh
squidcache_path="/var/squid/cache"
squidclient_path="/usr/local/sbin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p 80 $url
done

注意:请赋予clear_squid_cache.sh可执行权限(命令:chmod +x ./clear_squid_cache.sh)。请确保脚本所在目录可写。

设置:

squidcache_path= 表示squid缓存目录的路径

squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient

用法:

1、清除所有Flash缓存(扩展名.swf):

./clear_squid_cache.sh swf

2、清除URL中包含sina.com.cn的所有缓存:

./clear_squid_cache.sh sina.com.cn

3、清除文件名为zhangyan.jpg的所有缓存:

./clear_squid_cache.sh zhangyan.jpg

直接用命令清除一个图片的缓存

sudo /usr/local/sbin/squidclient -m PURGE -p 3338 http://www.icgoo.net/icgoo/portal_skins/Icgoo_images/topbanner9_24.jpg 

 

成功的话,显示如下提示 :

%sudo /usr/local/sbin/squidclient -m PURGE -p 3338 http://www.icgoo.net/icgoo/portal_skins/Icgoo_images/topbanner9_24.jpg/
HTTP/1.0 200 OK
Server: squid/2.7.STABLE9
Date: Tue, 25 Sep 2012 09:37:03 GMT
Content-Length: 0
Expires: Tue, 25 Sep 2012 09:37:03 GMT
X-Cache: MISS from www2.icgoo.net
Via: 1.0 www2.icgoo.net:3338 (squid/2.7.STABLE9)
Connection: close

还有一个

 开发经常会要求清squid缓存...

很无奈,只好用squid的PURGE清除缓存

PUGRE是一种有点危险的http请求

squid.conf中加配置如下:

acl AdminBoxes src 127.0.0.1
acl Purge method PURGE
http_access allow AdminBoxes Purge
http_access deny Purge

//只允许本地PUGRE

用例如下:

squidclient -h xx.xx.xx.xx -p 80 -U [email protected] -W password -m PURGE http://img1.sss.com/js/s_code.js

放在脚本clear_squid_cache.sh中调用:

#!/bin/sh
squidcache_path="/opt/xx/squid/var/cache"
squidclient_path="/opt/xx/squid/bin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'>cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -p 80 -U [email protected] -W tuniu2906 -m PURGE -p 80 $url
done

这个是张宴的脚本 

猜你喜欢

转载自xiaolin0199.iteye.com/blog/2014505