Squid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录,每一个目录下又建立多个目录,然后才在最里层的目录中存放缓存文件(object)。squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。
对于类似
http://you.video.sina.com.cn/index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:
引用
squidclient -m PURGE -p 80 "http://you.video.sina.com.cn/index.html"
由于工作需要,公司服务器经常性的会更新图片,最终的结果就是,首页图片频繁的更新,同时公司内部上网又通过代理,导致更新人员不能及时看到更新后的结果,给工作带来极大的不方便,如果要一个个的进行PURGE,也会增加维护人员的工作量,对于其他部门也不是很方便,就在网上进行搜索,找到了
http://www.365bloglink.com/go.php?id=0215245 的帖子,其中的脚本对自己很有用,同时对此脚本进行了修改
脚本文件名:clear_squid_cache.sh(
引用
#!/bin/sh
squidcache_path="/data1/squid/var/cache"
squidclient_path="/usr/local/squid/bin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' | grep
[a-zA-Z0-9]$ > 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如果对于频繁更新的gif或者什么,可以在crontab中添加对应的命令行
0 * * * * /usr/local/bin/clear_squid_cache.sh gif &
这样就会每隔一个小时进行一次刷新操作了,很是方便
如果需要让图片更新人员自行刷新的话,就可以找相应的人员开发web页面,进行对脚本的调用就可以了