前言:之前使用官方的nginx proxy_cache作為CDN靜態(tài)緩存發(fā)現(xiàn)該模塊清理緩存是一個(gè)大問(wèn)題,只能一條一條url的清除,為此寫了一個(gè)批量清除緩存的腳本
主要功能包括:
1.按文件類型清理
2.按具體的文件名清理
3.按網(wǎng)站目錄清理
下面是bash shell腳本代碼,之前網(wǎng)上也好好多類似的腳本但是感覺(jué)都不太好還容易誤導(dǎo)人犯錯(cuò)誤
#!/bin/bash#Email:[email protected]#Auto Clean Nginx Proxy_Cache Shell Scripts#Aunthor:sun~shell#Date:2017-02-23echo -e "/n/n"echo -n -e "/e[35;1m請(qǐng)輸入Nginx Proxy_cache緩存的具體路徑(友情提示:可以使用Tab補(bǔ)全功能哦!)/e[0m/e[34;5m:/e[0m"read -e pathCACHE_DIR=$pathecho -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -n -e "/e[32;1m請(qǐng)輸入你要?jiǎng)h除的動(dòng)作/n1.按文件類型刪除/t2.按具體文件名刪除/t3.按文件目錄刪除/n:"read action case $action in1)echo -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -n -e "/e[34;1m 請(qǐng)輸入你要?jiǎng)h除的緩存文件類型(可以輸入多個(gè)參數(shù)空格隔開(kāi))/e[0m/e[34;5m:/e[0m"read -a FILEfor i in `echo ${FILE[*]}|sed 's/ //n/g'`dogrep -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 刪除成功!" donedone;;2)echo -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -e "/e[32;1m----------------------------------------------------------------/e[0m"echo -n -e "/e[33;1m 請(qǐng)輸入你要?jiǎng)h除的緩存文件具體名稱(可以輸入多個(gè)參數(shù)空格隔開(kāi))/e[0m/e[34;5m:/e[0m"read -a FILEfor i in `echo ${FILE[*]}|sed 's/ //n/g'`dogrep -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 刪除成功!" donedone;;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 請(qǐng)輸入你要?jiǎng)h除的緩存文件具體目錄/e[0m/e[34;5m:/e[0m"read -a FILEfor i in `echo ${FILE[*]}|sed 's/ //n/g'`dogrep -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 刪除成功!" donedone;;*)echo "輸入錯(cuò)誤,請(qǐng)重新輸入";;esac
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
|
新聞熱點(diǎn)
疑難解答
圖片精選