清除指定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

下载:


代码如下:

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)。请确保脚本所在目录可写。

  设置:
  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个。

(0)

相关推荐

  • centos下简单配置安装Squid 3.0反向代理

    安装篇: 本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables 首先修改文件描述符并设定临时端口范围,这些设置重启后生效 复制代码 代码如下: cat >> /etc/security/limits.conf <<DDD * soft nofile 8192 * hard nofile 20480 DDD cat >> /etc/sysctl.conf <<DDD #set temp port r

  • 搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页

    Squid是一个应用级代理,在保证客户端主机和服务器主机网络连通后,需要客户端软件做相应的设置后才能使用,比如给 Internet Explorer设置代理服务器地址.端口等.WEB缓存功能对于一个规模较大.访问繁忙的网络来说是有必要的,IBM网站上的一篇文章,详细分析介绍了WEB缓存给上网用户带来的好处:http://www-900.ibm.com/developer ... achinga/index.shtml 下面我们就介绍一下squid的有关内容. §§ 安装运行squid Redha

  • Linux下Squid配置详解 Squid代理服务器配置第1/3页

    代理服务器的功能是代理网络用户取得网络信息,它是网络信息的中转站.随着代理服务器的广泛使用,随之而来的是一系列的安全问题.由于没有对代理服务器的访问控制策略作全面细致的配置,导致用户可以随意地通过代理服务器访问许多色情.反动的非法站点,而这些行为往往又很难追踪,给管理工作带来极大的不便. Squid是Linux下一个缓存Internet数据的代理服务器软件,其接收用户的下载申请,并自动处理所下载的数据.也就是说,当一个用户想要下载一个主页时,可以向Squid发出一个申请,要Squid代替其进行下

  • 对squid中refresh_pattern的一些理解和建议

    refresh_pattern的作用: 用于确定一个页面进入cache后,它在cache中停留的时间.refresh_pattern规则仅仅应用到没有明确过时期限的响应.原始服务器能使用Expires头部,或者Cache-Control:max-age指令来指定过时期限. 语法:refresh_pattern [-i] regexp min percent max [options] min参数是分钟数量.它是过时响应的最低时间限制.如果某个响应驻留在cache里的时间没有超过这个最低限制,那么

  • 在Windows下利用Squid开设代理服务器

    在"突破公司网络封锁,畅游无限网络"一文提到解决方案中,是利用ccproxy来建立proxy server.ccproxy是图形界面程序,使用比较简单,但是存在着两个问题:首先ccproxy不是免费软件,未注册版本只能提供3个连接:另外一个就是从性能还是稳定性上都不是特别让人满意. 后来发现自己的确孤陋寡闻,Unix/Linux下大名鼎鼎的开源免费代理软件Squid(www.squid-cache.org)是有Windows的Native版本SquidNT.既然如此,Squid一出,谁

  • Windows下安装squid的步骤详解

    一.下载squid for windows 下载地址:http://www.acmeconsulting.it/SquidNT.html http://www.jb51.net/softs/43599.html 二.Windows下安装squid与配置 1.解压squid-2.6.STABLE6-NT-bin.zip到C:\squid 2.单击[开始],选择"运行",输入 cmd ,在命令提示符窗口内输入以下命令: C:\>cd c:\squid\etc C:\squid\etc

  • PHP Squid中可缓存的动态网页设计

    当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样 见我下面的程序,呵呵,5分钟过期. <?php $headers = apache_request_headers()

  • FreeBSD6.0Release+Squid+Socks5服务器架设笔记

    架设此服务器,使客户端通过设置代理服务器的squid来浏览网页,通过代理服务器的socks5来使用QQ.MSN.证券等服务,下面简单介绍服务器的架设过程. 一.安装FreeBSD6.0Release 从ftp://ftp.freebsd.org/pub/FreeBSD/torrents/6.0-RELEASE下载最新版本FreeBSD6.0Release刻成光盘并选择最小化安装(安装时开通ftp及ssh服务). 网络信息:网段 -> 192.168.10.0/24fxp0 -> 内网网卡 19

  • nginx+apache+mysql+php+memcached+squid搭建集群web环境

    服务器的大用户量的承载方案一.前言 二.编译安装 三. 安装MySQL.memcache 四. 安装Apache.PHP.eAccelerator.php-memcache 五. 安装Squid 六.后记 一.前言,准备工作当前,LAMP开发模式是WEB开发的首选,如何搭建一个高效.可靠.稳定的WEB服务器一直是个热门主题,本文就是这个主题的一次尝试.我们采用的架构图如下: 引用-------- ---------- ------------- --------- ------------| 客

  • 使用Squid做代理服务器的方法

    说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较多的网页保存在缓存中,从而"提高"网络速度.更重要的是,我们能通过代理服务器,达到控制访问权限的目的.在 Windows中,有很多这样的软件,如:WinGate.SyGate等,不过,本文要讨论的,是能给你充分自由的Linux下的Squid. Linux下的代理服务器软件也不是只有Squid,不过在大部分Linux版

  • 基于Xen的VPS 配置squid服务器

    安装很简单:apt-get install squid 配置中的重点是打开用户验证. 通过htpasswd建立用户名密码文件,然后在squid的配置文件中设置. http_port 3128 auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.password auth_param basic children 5 auth_param basic realm Hamo's Private Proxy auth_p

  • Linux下Squid代理服务器的架设与维护经验分享

    通过架设专门的WWW(FTP)代理来满足用户的主要需求,通过架设socks5代理来满足用户的其他需求. 一.对使用者的分析 现有网络情况: 我校校园网通过光缆已将31座建筑物连通,光缆总长度约15Km,绝大多数楼中实现结构化布线,连入校园网的网络多媒体教室.教学基地.实验室.机房等约有数十个,连网计算机达3000多台 .我校目前出口有2个,一条速率为10M bps,通过光纤接入中国教育科研网CERNET,另一条速率为4M bps连入中国电信. 用户的需求: 我校校园网的使用者主体为在校学生及老师

  • linux下安装Squid代理的详细配置教程

    1.如果系统中还没有装squid,按以下顺序输入命令后即可完成安装 # wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE18.tar.gz //下载Squid代理安装包 # tar -zxvf squid-3.0.STABLE18.tar.gz //解压Squid安装包 # cd squid-3.0.STABLE18 # ./configure --prefix=/usr/local/squid --sysconfd

  • 简单架设SSH+Squid代理服务器的自由上网通道的方法

    而SSH则很好地解决了这个问题.你只需要一个vps,就可以配置了.架设还是挺容易的. 安装webmin webmin是一个可视化管理linux系统的免费软件.我们安装它是为了方便管理squid代理服务器或者linux系统.详细安装地址如下: CentOS 安装Webmin管理系统 安装squid代理服务器 1.在安装squid之前,我们需要安装EPEL软件包. 复制代码 代码如下: rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i38

  • WINDOWS系统下怎样配置squid做CDN的简明图解

    先提条件,您预安装配置squid的这台计算机必须是联入网络的,系统版本是windows 2000/xp/2003/server 2003. 1)先下载Squid for Windows版本(http://www.jb51.net/softs/43599.html),下载地址如下(ZIP文件名称:squid-2.7.STABLE4-bin.zip),可以把这个文件下载到桌面,这样好找好操作. Squid是Linux/Unix下著名的代理服务器软件,很多商业版本的代理服务器都是基于Squid进行开发

  • Gzip在apache2中的设置和squid对它的处理

    如果要开启gzip的话,一定要打开下面二个模块. 复制代码 代码如下: LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so 设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源. 复制代码 代码如下: DeflateCompressionLevel 3 AddOutputFilter DE

随机推荐