小知识:清除指定squid缓存文件的脚本代码分享

squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。

  对于类似http://www.hao123.com/index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:

squidclient -m PURGE -p 80 “http://www.hao123.com/index.html”

  而对于带有参数的网页,例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=4469852&uid=1278987704,因”?”后面的参数不同,导致URL也不同,squid会生成多个缓存文件,哈希分散存放在不同的目录。如果修改了这个outer_player.swf文件,要更新squid缓存就要去清除不同目录下及内存中的很多个缓存文件,十分麻烦,于是我编写了一个Linux下的shell脚本,去完成这件麻烦的事:

  脚本文件名:clear_squid_cache.sh

下载:

复制代码 代码如下:

clear_squid_cache.sh#!/bin/sh

squidcache_path=”/cache/”

squidclient_path=”/usr/local/squid/bin/squidclient”

grep -a -r $1 $squidcache_path/* | strings | grep “http:” | awk -Fhttp: {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 jb51.net

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

  ./clear_squid_cache.sh test.jpg

  效率:

  经测试,在DELL 2950上清除26000个缓存文件用时2分钟左右。平均每秒可清除缓存文件177个。
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:详解Nginx与Apache共用80端口的配置方法

2023-5-1 2:37:18

建站知识

小知识:配置Nginx服务器展示随机首页与空白图片的方法

2023-5-1 2:46:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索