用Shell脚本精准清除Squid缓存

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

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

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

转载注明出处:http://www.heiqu.com/72b33e41acf2950600517c226af7d01e.html