squid

(更新版)通过脚本人为有选择性的更新squid的cache

squid 缓存文件的格式是DBase 3 data file,使用cat命令虽然也是可以看到里面的内容的,但格式混乱,如果想取出我们需要的东西,相对来说比较的麻烦,linux下有个stings命令,这条命令可以显示可打印的文本,这样,对cache文件进行stings的话,就可以把文本的部分显示出来了,而且每条记录是一行,这样一来,让我想到了以前我在张宴那个脚本基础上进行修改后的脚本就又可以进行第二次的改良了,下面我就把改良的内容写出如下
 
先看下原始cache文件的内容
再看看用stings转换后的内容

脚本文件名:clear_squid_cache.sh

注意:请赋予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、清除文件名为/images/的所有缓存:
  ./clear_squid_cache.sh /images/

如果对于频繁更新的gif或者什么,可以在crontab中添加对应的命令行
0 * * * * /usr/local/bin/clear_squid_cache.sh gif &
这样就会每隔一个小时进行一次刷新操作了,很是方便
如果需要让图片更新人员自行刷新的话,就可以找相应的人员开发web页面,进行对脚本的调用就可以了
 

注:以上cache内容摘取自squid3.0,2.x版本是否可以使用还请各位验证,总之3.0使用这个脚本后,准确率已经基本能达到100%了,对于以前有了很大程度的提高

原始脚本请参考张宴blog

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *