建伟博客

记录工作

squid缓存批量更新

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chen3888015/article/details/7384138
上一篇用Shell脚本实现自动从NewSmth.net的MyPhoto版下载照片
下一篇Linux 安装和 卸载系统原装jdk
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭