<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[观夏Note]]></title> 
<link>//gm.angeldm.com/index.php</link> 
<description><![CDATA[新技术番]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[观夏Note]]></copyright>
<item>
<link>//gm.angeldm.com/post//</link>
<title><![CDATA[清除指定squid缓存文件的脚本]]></title> 
<author>果面 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[网络应用]]></category>
<pubDate>Mon, 11 Jul 2011 04:19:05 +0000</pubDate> 
<guid>//gm.angeldm.com/post//</guid> 
<description>
<![CDATA[ 
	Squid web缓存加速软件目前已经是新浪、搜狐、网易等各大网站广泛应用。Squid会在设置的缓存目录下建立多个目录，每一个目录下又建立多个目录，然后才在最里层的目录中存放缓存文件（object）。squid会根据用户请求网页的URL进行哈希，生成缓存文件，存放在某一个目录中。squid启动之后，将在内存中建立一个哈希表，记录硬盘中缓存文件配置的情形。<br/><br/>　　对于类似http://you.video.sina.com.cn/index.html之类的网页，squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除：<br/><div class="code"><br/>squidclient -m PURGE -p 80 &quot;http://you.video.sina.com.cn/index.html&quot;<br/></div><br/><br/>　　而对于带有参数的网页，例如新浪播客的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脚本，去完成这件麻烦的事：<br/><br/>　　脚本文件名：clear_squid_cache.sh（8月2日修正了UC网友“城市中的寂寞”反馈的BUG）<br/><div class="code"><br/>#!/bin/sh<br/>squidcache_path=&quot;/var/spool/squid&quot;<br/>squidclient_path=&quot;/usr/sbin/squidclient&quot;<br/>grep -a -r $1 $squidcache_path/* &#124; strings &#124; grep &quot;http:&quot; &#124; awk -F&#039;http:&#039; &#039;&#123;print &quot;http:&quot;$2;&#125;&#039; &gt; cache_list.txt<br/>for url in `cat cache_list.txt`; do<br/>$squidclient_path -m PURGE -p 80 $url<br/>done<br/></div><br/>　　注意：请赋予clear_squid_cache.sh可执行权限（命令：chmod +x ./clear_squid_cache.sh）。请确保脚本所在目录可写。<br/><br/>　　设置：<br/>　　squidcache_path= 表示squid缓存目录的路径<br/>　　squidclient_path= 表示squidclient程序所在的路径，默认为squid安装目录下的bin/squidclient<br/><br/>　　用法：<br/>　　1、清除所有Flash缓存（扩展名.swf）：<br/>　　./clear_squid_cache.sh swf<br/><br/>　　2、清除URL中包含sina.com.cn的所有缓存：<br/>　　./clear_squid_cache.sh sina.com.cn<br/><br/>　　3、清除文件名为zhangyan.jpg的所有缓存：<br/>　　./clear_squid_cache.sh zhangyan.jpg<br/><br/>　　效率：<br/>　　经测试，在DELL 2950上清除26000个缓存文件用时2分钟左右。平均每秒可清除缓存文件177个。 
]]>
</description>
</item><item>
<link>//gm.angeldm.com/read.php?&amp;guid=0#topreply</link>
<title><![CDATA[[评论] 清除指定squid缓存文件的脚本]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>//gm.angeldm.com/read.php?&amp;guid=0#topreply</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>