栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > 服务器

nginx proxy_cache批量清除缓存的脚本介绍

服务器 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nginx proxy_cache批量清除缓存的脚本介绍

前言:之前使用官方的nginx proxy_cache作为CDN静态缓存发现该模块清理缓存是一个大问题,只能一条一条url的清除,为此写了一个批量清除缓存的脚本

主要功能包括:

1.按文件类型清理

2.按具体的文件名清理

3.按网站目录清理

下面是bash shell脚本代码,之前网上也好好多类似的脚本但是感觉都不太好还容易误导人犯错误 

#!/bin/bash
#Email:hello_linux@aliyun.com
#Auto Clean Nginx Proxy_Cache Shell scripts
#Aunthor:sun~shell
#Date:2017-02-23
echo -e "nn"
echo -n -e "e[35;1m请输入Nginx Proxy_cache缓存的具体路径(友情提示:可以使用Tab补全功能哦!)e[0me[34;5m:e[0m"
read -e path
CACHE_DIR=$path
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -n -e "e[32;1m请输入你要删除的动作n1.按文件类型删除t2.按具体文件名删除t3.按文件目录删除n:"
read action
   case $action in
1)
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -n -e "e[34;1m 请输入你要删除的缓存文件类型(可以输入多个参数空格隔开)e[0me[34;5m:e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /n/g'`
do
grep -r -a .$i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
 for j in `cat /tmp/cache_list.txt`
do
  rm -rf $j
  echo "$i $j 删除成功!"
 done
done
;;
2)
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -n -e "e[33;1m 请输入你要删除的缓存文件具体名称(可以输入多个参数空格隔开)e[0me[34;5m:e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /n/g'`
do
grep -r -a $i ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
 for j in `cat /tmp/cache_list.txt`
do
  rm -rf $j
  echo "$i $j 删除成功!"
 done
done
;;
3)
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -e "e[32;1m----------------------------------------------------------------e[0m"
echo -n -e "e[33;1m支持的模式有:n1.清除网站store目录下的所有缓存:test.dd.com/data/upload/shop/storen2.清除网站shop下的所有缓存:test.dd.com/data/upload/shope[0mn"
echo -n -e "e[34;1m 请输入你要删除的缓存文件具体目录e[0me[34;5m:e[0m"
read -a FILE
for i in `echo ${FILE[*]}|sed 's/ /n/g'`
do
grep -r -a "$i" ${CACHE_DIR}| awk 'BEGIN {FS=":"} {print $1}' > /tmp/cache_list.txt
 for j in `cat /tmp/cache_list.txt`
do
  rm -rf $j
  echo "$i $j 删除成功!"
 done
done
;;
*)
echo "输入错误,请重新输入"
;;
esac

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对考高分网的支持。如果你想了解更多相关内容请查看下面相关链接

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/178893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号