溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nginx中proxy_cache如何批量清除緩存

發(fā)布時間:2021-08-21 11:08:16 來源:億速云 閱讀:496 作者:小新 欄目:服務(wù)器

這篇文章給大家分享的是有關(guān)nginx中proxy_cache如何批量清除緩存的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

前言:之前使用官方的nginx proxy_cache作為CDN靜態(tài)緩存發(fā)現(xiàn)該模塊清理緩存是一個大問題,只能一條一條url的清除,為此寫了一個批量清除緩存的腳本

主要功能包括:

1.按文件類型清理

2.按具體的文件名清理

3.按網(wǎng)站目錄清理

下面是bash shell腳本代碼,之前網(wǎng)上也好好多類似的腳本但是感覺都不太好還容易誤導(dǎo)人犯錯誤 

#!/bin/bash
#Email:hello_linux@aliyun.com
#Auto Clean Nginx Proxy_Cache Shell Scripts
#Aunthor:sun~shell
#Date:2017-02-23
echo -e "\n\n"
echo -n -e "\e[35;1m請輸入Nginx Proxy_cache緩存的具體路徑(友情提示:可以使用Tab補(bǔ)全功能哦!)\e[0m\e[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 請輸入你要刪除的緩存文件類型(可以輸入多個參數(shù)空格隔開)\e[0m\e[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 請輸入你要刪除的緩存文件具體名稱(可以輸入多個參數(shù)空格隔開)\e[0m\e[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.清除網(wǎng)站store目錄下的所有緩存:test.dd.com/data/upload/shop/store\n2.清除網(wǎng)站shop下的所有緩存:test.dd.com/data/upload/shop\e[0m\n"
echo -n -e "\e[34;1m 請輸入你要刪除的緩存文件具體目錄\e[0m\e[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

感謝各位的閱讀!關(guān)于“nginx中proxy_cache如何批量清除緩存”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI