linux下清除Squid缓存的方法记录
在日常运维工作中,只要用到squid缓存服务,就会常常被要求清理squid缓存。 比如公司领导要求删一篇新闻,新闻是生成的静态。运维人员把服务器上静态的新闻页面删除了后,不料代理服务器上缓存还有。 缓存服务器如果用的是suqid,下面就对清理squid缓存的方法做一梳理:
(1)首先在squid的主配置文件中添加acl 列表,并允许受信任的主机有权限清除缓存。 [root@hqtime ~]# vim /etc/squid/squid.conf ....... ....... acl managercache src 192.168.1.145 127.0.0.1 acl Purge method PURGE http_access allow managercache Purge http_access deny Purge
(2)使用squid自带命令squidclient 如下清除squid中一条缓存,-h是受信任清理缓存的服务器ip,-p是指定的squid端口 [root@hqtime ~]# /usr/bin/squidclient -h 192.168.1.145 -p 80 -m PURGE http://www.linuxidc.com/404.html 或者 [root@hqtime ~]# /usr/bin/squidclient -p 80 -m PURGE http://www.linuxidc.com/404.html ------------------------------------------------------- 获取所有缓存 *.jpg 的信息 [root@hqtime ~]# /usr/bin/squidclient -p 80 mgr:objects | grep jpg
取得squid运行状态信息 [root@hqtime ~]# /usr/bin/squidclient -p 80 mgr:info
取得squid内存使用情况 [root@hqtime ~]# /usr/bin/squidclient -p 80 mgr:mem
取得squid已经缓存的列表(小心使用此命令 可能导致崩溃): [root@hqtime ~]# /usr/bin/squidclient -p 80 mgr:objects
取得squid的磁盘使用情况: [root@hqtime ~]# /usr/bin/squidclient -p 80 mgr:diskd
强制更新某个url: [root@hqtime ~]# /usr/bin/squidclient -p 80 -m PURGE http://www.yejr.com/static.php -------------------------------------------------------
(3)通过脚本删除 比如编写删除squid缓存的脚本clear_squid_cache.sh,如下: [root@hqtime ~]# vim clear_squid_cache.sh #!/bin/sh squidcache_path="/data1/squid/var/cache" squidclient_path="/usr/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
[root@hqtime ~]# chmod 755 clear_squid_cache.sh #赋予脚本可执行权限
注意:脚本中的下面两个设置: squidcache_path= 表示squid缓存目录的路径,这个在squid.conf配置文件中可以查到 squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient -p 是指定squid 监听的端口
用法: 清除所有Flash缓存(扩展名.swf): [root@hqtime ~]# sh clear_squid_cache.sh swf
清除URL中包含sina.com.cn的所有缓存: [root@hqtime ~]# sh clear_squid_cache.sh sina.com.cn
清除文件名为huanqiu.jpg的所有缓存: [root@hqtime ~]# sh clear_squid_cache.sh huanqiu.jpg
如果对于频繁更新的gif或者什么,可以在crontab中添加对应的命令行 假设上述脚本在/root目录下。如下: [root@hqtime ~]# crontab -e 0 * * * * /bin/bash /root/clear_squid_cache.sh gif & 这样就会每隔一个小时进行一次刷新操作了,很是方便 如果需要让图片更新人员自行刷新的话,就可以找相应的人员开发web页面,进行对脚本的调用就可以了
脚本效率: 经测试,此脚本清除26000个缓存文件用时2分钟左右,平均每秒可清除缓存文件177个。
(4)还有一种方法,直接删除squid的缓存目录,这样就删除了squid的全部缓存了! 然后重新创建同名空目录做为缓存目录,接着squid -z重新初始化,最后重启squid即可!
查看squid.conf配置文件,比如缓存目录是/data1/squid/var/cache(cache_dir后面设置的) [root@hqtime ~]# rm -rf /data1/squid/var/cache
[root@hqtime ~]# squid -z
[root@hqtime ~]# /etc/init.d/squid restart
- 制作WordPress侧边栏“博客统计”小工具并集成在主题中的方法
- Struts2、Spring MVC4 框架下的ajax统一异常处理
- 前11月网游收入1341亿元同比增超两成 你贡献了多少?
- struts2: config-browser-plugin 与 convention-plugin 学习
- 千万级规模高性能、高并发的网络架构经验分享
- UE4新手之编程指南
- redis 学习笔记(5)-Spring与Jedis的集成
- Linq to SQL 查询Tips
- SQLite 预写式日志
- java调用.net asmx / wcf
- mybatis3.2.8 与 hibernate4.3.6 混用
- mybatis的物理分页:mybatis-paginator
- 使用 WMI 进行诊断WCF
- java:快速文件分割及合并
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浙大版《C语言程序设计(第3版)》题目集 习题7-7 字符串替换
- 浙大版《C语言程序设计(第3版)》题目集 习题8-10 输出学生成绩
- 浙大版《C语言程序设计(第3版)》题目集 习题9-1 时间换算
- 浙大版《C语言程序设计(第3版)》题目集 习题9-3 平面向量加法
- 浙大版《C语言程序设计(第3版)》题目集 习题9-4 查找书籍
- 浙大版《C语言程序设计(第3版)》题目集 习题9-5 通讯录排序
- 浙大版《C语言程序设计(第3版)》题目集 习题7-5 找鞍点
- 浙大版《C语言程序设计(第3版)》题目集 练习5-1 求m到n之和
- 手把手教你用Python爬取快递100查询你的物流信息
- 浙大版《C语言程序设计(第3版)》题目集 练习5-2 找两个数中最大者
- 浙大版《C语言程序设计(第3版)》题目集 练习5-3 数字金字塔
- 浙大版《C语言程序设计(第3版)》题目集 习题5-1 符号函数
- 浙大版《C语言程序设计(第3版)》题目集 习题5-2 使用函数求奇数和
- 浙大版《C语言程序设计(第3版)》题目集 习题5-3 使用函数计算两点间的距离
- 浙大版《C语言程序设计(第3版)》题目集 习题5-4 使用函数求素数和