Squid缓存批量更新

squid的缓存批量更新问题,因代理上有很多的域名,部分客户的网站如图片等会经常更新,要求又比较紧急,所以写了个自动清除缓存的脚本,后来网上也搜查了个,感觉还是别人的写的比较好,这里我把自己写的跟别人写的都记录下,方便以后查看。

我个人写的clear_squidcache.sh

#!/bin/bash #clear_squidcache.sh FILE="/tmp/123.txt"      #这里的123.txt中是存放更新文件的完整url路径。 cat $FILE |while read line        do          /usr/local/squid/bin/squidclient -l 127.0.0.1 -p 80 -m PURGE $line >/dev/null 2>&1        done 
rm -f /tmp/123.txt

在网上找到高手写的:

#!/bin/sh  squidcache_path1="/data/cache1"  # Squid 的缓存目录 squidcache_path2="/data/cache2" squidclient_path="/usr/local/squid/bin/squidclient"  # squidclient 的路径  grep -a -r $1 $squidcache_path1/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > /tmp/cache_list.txt grep -a -r $1 $squidcache_path2/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' >> /tmp/cache_list.txt  cat cache_list.txt |while read url; do $squidclient_path -l 127.0.0.1 -m PURGE -p 80 $url   # 80 端口根据你squid的http 设置自行修改 done 
rm -f /tmp/cache_list.txt

这个是我稍微修改过的,功能相对我个人写的要强大多了,可以拿来借鉴学习。用法也比较简单,保存脚本为clear_squid_cache.sh,赋予执行权限。
执行清除域名缓存:./clear_squid_cache.sh
      清除后缀缓存:./clear_squid_cache.sh jpg
       清除特定文件缓存:./clear_squid_cache.sh 123.jpg

    后续再研究研究,看看是否有更好的办法,或者再对脚本进行优化优化。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/407abd79d0beac1c865c9acc16e20ea8.html