请教如何用perl编写清除squid缓存脚本
时间:2010-09-25
来源:互联网
各位大侠帮忙,我的squid缓存的目录是/data/squid/,打算只清除jpg文件的缓存或者只清除js的缓存,
在网上找到张宴用shell实现的脚本,如下:
#!/bin/sh
squidcache_path="/data1/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;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p 80 $url
done
用法:
1、清除所有Flash缓存(扩展名.swf):
./clear_squid_cache.sh swf
2、清除URL中包含sina.com.cn的所有缓存:
./clear_squid_cache.sh sina.com.cn
3、清除文件名为zhangyan.jpg的所有缓存:
./clear_squid_cache.sh zhangyan.jpg
请问用perl能不能实现相同的功能。
在网上找到张宴用shell实现的脚本,如下:
#!/bin/sh
squidcache_path="/data1/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;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p 80 $url
done
用法:
1、清除所有Flash缓存(扩展名.swf):
./clear_squid_cache.sh swf
2、清除URL中包含sina.com.cn的所有缓存:
./clear_squid_cache.sh sina.com.cn
3、清除文件名为zhangyan.jpg的所有缓存:
./clear_squid_cache.sh zhangyan.jpg
请问用perl能不能实现相同的功能。
作者: li_000828 发布时间: 2010-09-25
问一下先,清除jpg文件的缓存或者只清除js的缓存
是使用类似
/usr/local/squid/bin/squidclient -m PURGE -p 80 $url
的命令么
其中$url表示一个地址
然后jpg文件是不是指地址里包含.jpg?
那么js呢,它又有什么特征啊?
是使用类似
/usr/local/squid/bin/squidclient -m PURGE -p 80 $url
的命令么
其中$url表示一个地址
然后jpg文件是不是指地址里包含.jpg?
那么js呢,它又有什么特征啊?
作者: 珞水的大叔 发布时间: 2010-09-25
回复 li_000828
对,还是用这个命令, /usr/local/squid/bin/squidclient -m PURGE -p 80 $url
其中$url表示要清除缓存的路径,比如,,
而shell中就是找到缓存中所有包含jpg的$url,然后再用for循环删除squid缓存。
我想用perl来实现,由于shell的grep命令加上参数-r,可以实现递归查找,不知用perl能不能实现/data/squid目录下的所有子目录的递归查找,实现和上面shell脚本一样的功能。
对,还是用这个命令, /usr/local/squid/bin/squidclient -m PURGE -p 80 $url
其中$url表示要清除缓存的路径,比如,,
而shell中就是找到缓存中所有包含jpg的$url,然后再用for循环删除squid缓存。
我想用perl来实现,由于shell的grep命令加上参数-r,可以实现递归查找,不知用perl能不能实现/data/squid目录下的所有子目录的递归查找,实现和上面shell脚本一样的功能。
作者: li_000828 发布时间: 2010-09-25
回复 li_000828
不好意思,路径打错了,
例如: 或者http://2.2.2.2./b.js
不好意思,路径打错了,
例如: 或者http://2.2.2.2./b.js
作者: li_000828 发布时间: 2010-09-25
回复 li_000828
最核心的就是用perl能不能实现当前目录及其子目录下的所有文件的查找关键字,由于squid缓存的子目录有100个,要循环打开并用正则匹配的话,效率非常低。
最核心的就是用perl能不能实现当前目录及其子目录下的所有文件的查找关键字,由于squid缓存的子目录有100个,要循环打开并用正则匹配的话,效率非常低。
作者: li_000828 发布时间: 2010-09-25
用File::Find找到所有的目录,然后在匹配吧。
作者: shaneqi 发布时间: 2010-09-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28