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