squid清理缓存 [shell perl php]

缓存的清理脚本是从洒哥那里搞到的

只是根据洒哥的脚本简单的延伸了下,以前那个分享的脚本可以去除域名和特定的文件格式,然后我就想了能不能去除一个网址的所有jpg    或者是 www.92hezu.com/123/bbb/ 这样的。  原来多加上几个后缀,用grep过滤就ok了

qingli.sh      www.xiuxiukan.com

qingli.sh      jpg

qingli.sh       xiuxiukan.com 123  bbb  jpg

 

  
  
  
  
  1. #!/bin/sh 

  2. squidcache_path="/squidcache"

  3. squidclient_path="/home/local/squid/bin/squidclient"

  4. #grep -a -r $1 $squidcache_path/* | grep 'http:' | awk -F 'http: '{print "http:"$2;}' | awk -F\' '{print $1}' > cache.txt 

  5. if [[ "$1" == "swf" || "$1" == "png" || "$1" == "jpg" || "$1" == "ico" || "$1" == "gif" || "$1" == "css" || "$1" == "js" || "$1" == "html" || "$1" == "shtml" || "$1" == "htm"   ]]; then 

  6. grep -a -r .$1 $squidcache_path/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}' | awk -F\' '{print $1}' | grep "$1$" | uniq > cache.txt 

  7. else 

  8. grep -a -r $1 $squidcache_path/* | strings | grep "http:" |grep $2$ |grep $3$|grep $4$|grep $5$ |grep $6$| awk -F 'http:' '{print "http:"$2;}' | awk -F\' '{print $1}' | uniq > cache.txt 

  9. fi 

  10. sed -i "s/\";$//g" cache.txt 

  11. cat cache.txt | while read LINE 

  12. do 

  13. $squidclient_path -p 80 -m PURGE $LINE 

  14. done 

 

还有一个是web清理缓存的,这个很好用的~!!!!

http://rfyiamcool.googlecode.com/files/squid-nginx-purge_cache_v1.2.3.rar

要放在php的环境运行的!

 

这个是perl清理squid缓存!!!!

  
  
  
  
  1. #! /bin/env perl 

  2. use File::Find; 

  3. use Net::HTTP; 

  4. our @src_file_dir = ("/usr/local/squid/cache"); 

  5. our $grp_file = $ARGV[0]; 

  6. find(\&wanted, @src_file_dir); 

  7. sub wanted { 

  8.     !-d && search($File::Find::name); 

  9. sub search { 

  10.     my $filename = shift

  11.     open FH,"strings $filename |"; 

  12.     while(<FH>) { 

  13.         chomp; 

  14.         \&purge_cache($_) if (/$grp_file/i and /^http/); 

  15.     } 

  16. sub purge_cache { 

  17.     my $url = shift

  18.     my $conn = Net::HTTP->new(Host => "127.0.0.1") or die $@; 

  19.     $conn->write_request(PURGE => $url); 

  20.     my($code, $mess, %h) = $conn->read_response_headers; 

  21.     print $url,":",$code,"\n"; 

 

你可能感兴趣的:(squid清理)