清除指定squid緩存文件的腳本代碼分享
更新時(shí)間:2012年02月09日 00:51:19 作者:
Squid web緩存加速軟件目前已經(jīng)是新浪、搜狐、網(wǎng)易等各大網(wǎng)站廣泛應(yīng)用。Squid會(huì)在設(shè)置的緩存目錄下建立多個(gè)目錄,每一個(gè)目錄下又建立多個(gè)目錄,然后才在最里層的目錄中存放緩存文件(object)
squid會(huì)根據(jù)用戶請(qǐng)求網(wǎng)頁(yè)的URL進(jìn)行哈希,生成緩存文件,存放在某一個(gè)目錄中。squid啟動(dòng)之后,將在內(nèi)存中建立一個(gè)哈希表,記錄硬盤中緩存文件配置的情形。
對(duì)于類似http://jb51.net/index.html之類的網(wǎng)頁(yè),squid只會(huì)生成一個(gè)緩存文件??梢杂胹quid附帶的squidclient工具清除:
squidclient -m PURGE -p 80 “http://jb51.net/index.html”
而對(duì)于帶有參數(shù)的網(wǎng)頁(yè),例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=4469852&uid=1278987704,因”?”后面的參數(shù)不同,導(dǎo)致URL也不同,squid會(huì)生成多個(gè)緩存文件,哈希分散存放在不同的目錄。如果修改了這個(gè)outer_player.swf文件,要更新squid緩存就要去清除不同目錄下及內(nèi)存中的很多個(gè)緩存文件,十分麻煩,于是我編寫了一個(gè)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
注意:請(qǐng)賦予clear_squid_cache.sh可執(zhí)行權(quán)限(命令:chmod +x ./clear_squid_cache.sh)。請(qǐng)確保腳本所在目錄可寫。
設(shè)置:
squidcache_path= 表示squid緩存目錄的路徑
squidclient_path= 表示squidclient程序所在的路徑,默認(rèn)為squid安裝目錄下的bin/squidclient
用法:
1、清除所有Flash緩存(擴(kuò)展名.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
效率:
經(jīng)測(cè)試,在DELL 2950上清除26000個(gè)緩存文件用時(shí)2分鐘左右。平均每秒可清除緩存文件177個(gè)。
對(duì)于類似http://jb51.net/index.html之類的網(wǎng)頁(yè),squid只會(huì)生成一個(gè)緩存文件??梢杂胹quid附帶的squidclient工具清除:
squidclient -m PURGE -p 80 “http://jb51.net/index.html”
而對(duì)于帶有參數(shù)的網(wǎng)頁(yè),例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=4469852&uid=1278987704,因”?”后面的參數(shù)不同,導(dǎo)致URL也不同,squid會(huì)生成多個(gè)緩存文件,哈希分散存放在不同的目錄。如果修改了這個(gè)outer_player.swf文件,要更新squid緩存就要去清除不同目錄下及內(nèi)存中的很多個(gè)緩存文件,十分麻煩,于是我編寫了一個(gè)Linux下的shell腳本,去完成這件麻煩的事:
腳本文件名:clear_squid_cache.sh
下載:
復(fù)制代碼 代碼如下:
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
注意:請(qǐng)賦予clear_squid_cache.sh可執(zhí)行權(quán)限(命令:chmod +x ./clear_squid_cache.sh)。請(qǐng)確保腳本所在目錄可寫。
設(shè)置:
squidcache_path= 表示squid緩存目錄的路徑
squidclient_path= 表示squidclient程序所在的路徑,默認(rèn)為squid安裝目錄下的bin/squidclient
用法:
1、清除所有Flash緩存(擴(kuò)展名.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
效率:
經(jīng)測(cè)試,在DELL 2950上清除26000個(gè)緩存文件用時(shí)2分鐘左右。平均每秒可清除緩存文件177個(gè)。
您可能感興趣的文章:
- Windows下安裝squid的步驟詳解
- Gzip在apache2中的設(shè)置和squid對(duì)它的處理
- Linux下Squid代理服務(wù)器的架設(shè)與維護(hù)經(jīng)驗(yàn)分享
- 簡(jiǎn)單架設(shè)SSH+Squid代理服務(wù)器的自由上網(wǎng)通道的方法
- nginx+apache+mysql+php+memcached+squid搭建集群web環(huán)境
- centos下簡(jiǎn)單配置安裝Squid 3.0反向代理
- 基于Xen的VPS 配置squid服務(wù)器
- 在Windows下利用Squid開設(shè)代理服務(wù)器
- WINDOWS系統(tǒng)下怎樣配置squid做CDN的簡(jiǎn)明圖解
- Linux下Squid配置詳解 Squid代理服務(wù)器配置
- 搭建一個(gè)大型網(wǎng)站架構(gòu)的實(shí)驗(yàn)環(huán)境(Squid緩存服務(wù)器篇)
- 對(duì)squid中refresh_pattern的一些理解和建議
- PHP Squid中可緩存的動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)
- FreeBSD6.0Release+Squid+Socks5服務(wù)器架設(shè)筆記
- FreeBSD6.0Release+Squid+Socks5服務(wù)器架設(shè)筆記
- 使用Squid做代理服務(wù)器的方法
- linux下安裝Squid代理的詳細(xì)配置教程
相關(guān)文章
Ubuntu下安裝rsh實(shí)現(xiàn)無(wú)密碼訪問(wèn)詳解
這篇文章主要為大家詳細(xì)介紹了Ubuntu下安裝rsh實(shí)現(xiàn)無(wú)密碼訪問(wèn)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03在Linux系統(tǒng)中使用Vim讀寫遠(yuǎn)程文件的命令詳解
這篇文章主要介紹了在Linux系統(tǒng)中使用Vim讀寫遠(yuǎn)程文件的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07linux .htaccess 設(shè)置 404 等錯(cuò)誤頁(yè)面
linux服務(wù)器下通過(guò)設(shè)置htaccess來(lái)實(shí)現(xiàn)404轉(zhuǎn)向的代碼2008-06-06Linux中配置雙機(jī)SSH信任 操作說(shuō)明
本篇文章小編為大家介紹,Linux中配置雙機(jī)SSH信任 操作說(shuō)明。需要的朋友參考下2013-04-04Linux中如何通過(guò)端口號(hào)查找進(jìn)程號(hào)
這篇文章主要介紹了Linux中如何通過(guò)端口號(hào)查找進(jìn)程號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05