用SHELL脚本精准清除Squid缓存

此脚本是在张宴的缓存清理脚本上做了修改的,主要是增加if选项,并根据$1参数类型来选择性的列出缓存文件所在地址(因为$1并不固定,有时是特定的jpg类型,有时是域名)目前在自己的Squid缓存服务器上应用,感觉采集缓存网址基本上没什么误差了,欢迎大家试用,争取将此脚本做到更加完美(此脚本在Centos5.4 x86_64,Squid2.7下通过)脚本内容如下:

  1. #!/bin/sh 
  2. squidcache_path="/usr/local/squid/var/cache" 
  3. squidclient_path="/usr/local/squid/bin/squidclient" 
  4. #grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}' |  awk -F\' '{print $1}' > cache.txt 
  5.  
  6. if [[ "$1" == "swf" || "$1" == "png" || "$1" == "jpg" || "$1" == "ico" || "$1" == "gif" || "$1" == "css" || "$1" == "js" ||  "$1" == "html" || "$1" == "shtml" || "$1" == "htm"   ]]; then 
  7.  grep -a -r .$1 $squidcache_path/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}' |  awk -F\' '{print $1}' | grep "$1$"  | uniq > cache.txt 
  8.  else 
  9.  grep -a -r $1  $squidcache_path/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}' |  awk -F\' '{print $1}' | uniq > cache.txt 
  10. fi 
  11.  
  12. cat cache.txt | while read LINE 
  13. do 
  14.   $squidclient_path -p 80 -m PURGE $LINE 
  15. done 

本文出自 “抚琴煮酒” 博客,请务必保留此出处http://blog.chinaunix.net/uid-12924167-id-3193164.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值