源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-01-11 12:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:清除指定squid缓存文件的脚本代码分享
squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。   对于类似http://jb51.net/index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除: squidclient -m PURGE -p 80 “http://jb51.net/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 下载:
[u]复制代码[/u] 代码如下:
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 -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)。请确保脚本所在目录可写。 [b]  设置: [/b]  squidcache_path= 表示squid缓存目录的路径   squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient  [b] 用法[/b]:   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个。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部