| 
      一:脚本
 a shell版 
#!/bin/bash
#Date: 2013-06-27
#Auther: budong
#######################################################
#说明:
#    1.本脚本用于清除nginx缓存文件
#    2.查看你的nginx是根据什么作为key来hash的,我的设置是 proxy_cache_key $uri$is_args$args;
#    因此nginx会根据$uri$is_args$args作为key进行hash,因此可以模拟nginx对一个key进行再
#    hash找到相应的文件路径,删除(具体可随意找个缓存文件 more 一下看看)
#    3.缓存设置 proxy_cache_path /data/mumayi/cache levels=1:2 keys_zone=cache_one:6000m inactive=15d max_size=200g;
#    根据相应的配置,请做相应修改测试
#    4.uri格式请按照同级目录下rm_apk_list.txt中填写
#####################################################
while read -r line
do
    md5uri=`echo -n $line | md5sum | awk '{ print $1 }'`
    filepath=`echo "$md5uri" | awk '{print "/data/mumayi/cache/"substr($0,length($0),1)"/"substr($0,length($0)-2,2)"/"$0}'`
    rm -rf $filepath
done < /root/sbin/rm_apk_list.txt
b python版 
#!/usr/local/python2.7/bin/python2.7
# -*- coding:utf8 -*-
#Date: 2013-06-26
#Name: budong
'''
说明:
.本脚本用于清除nginx缓存文件
.查看你的nginx是根据什么作为key来hash的,我的设置是 proxy_cache_key $uri$is_args$args;
    因此nginx会根据$uri$is_args$args作为key进行hash,因此可以模拟nginx对一个key进行再
    hash找到相应的文件路径,删除(具体可随意找个缓存文件 more 一下看看)
.缓存设置 proxy_cache_path /data/mumayi/cache levels=1:2 keys_zone=cache_one:6000m inactive=15d max_size=200g;
    根据相应的配置,请做相应修改测试
.uri格式请按照同级目录下rm_apk_list.txt中填写
'''
import os
import sys
try:
    from hashlib import md5
except:
    from md5 import md5
reload( sys )
sys.setdefaultencoding('utf-8')
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
URI_FILE = ''.join([PROJECT_ROOT,'/rm_apk_list.txt'])
def nginx_purge(uri):
    m = md5()
    m.update("%s" % uri)
    md5uri=m.hexdigest()
    md5uri_len=len(md5uri)
    dir1=md5uri[md5uri_len-1:]
    dir2=md5uri[md5uri_len-3:md5uri_len-1]
    file_path=("/data/mumayi/cache/%s/%s/%s" % (dir1, dir2, md5uri))
    if os.path.exists(file_path):
        os.remove(file_path)
with open("%s" % URI_FILE,'r') as uri_file:
    for line in uri_file:
        line = line.rstrip()
        nginx_purge(line)
c ngx_cache_purge不做考虑,据说已经停止开发了 说明: 我的 /root/sbin/rm_apk_list.txt 文件 [root@budong ~]# cat /root/sbin/rm_apk_list.txt /2013/08/15/38/382272/shuazanzhushou_V1.8.16_mumayi_95a91.apk 查看一个缓存对象,应该有些明白了吧 [root@budong ~]# more /data/mumayi/cache/0/00/db9327b60a6b3c164516117f90d9d000 塑? KEY: /2013/10/23/43/432816/dinuochongwuDinoPets_V1.1.1_mumayi_0b399.apk HTTP/1.1 200 OK Server: nginx/1.2.6 Date: Sun, 15 Dec 2013 19:51:22 GMT Content-Type: application/vnd.android.package-archive Content-Length: 37466293 Connection: close Last-Modified: Wed, 23 Oct 2013 06:15:06 GMT Expires: Wed, 18 Dec 2013 17:35:07 GMT Cache-Control: max-age=604800 Accept-Ranges: bytes 二:是时候结束了自言自语: 
 (责任编辑:IT)  | 
    
