关闭

squid缓存批量更新

575人阅读 评论(0) 收藏 举报

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

我个人写的clear_squidcache.sh

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

在网上找到高手写的:

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

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

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

本文出自 “我的运维之路” 博客,请务必保留此出处http://newyue.blog.51cto.com/174760/629883

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:546755次
    • 积分:8923
    • 等级:
    • 排名:第2225名
    • 原创:305篇
    • 转载:69篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论