前言:之前使用官方的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-23echo -e "/n/n"echo -n -e "/e[35;1m請輸入Nginx Proxy_cache緩存的具體路徑(友情提示:可以使用Tab補全功能哦!)/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請輸入你要刪除的動作/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 請輸入你要刪除的緩存文件類型(可以輸入多個參數空格隔開)/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 請輸入你要刪除的緩存文件具體名稱(可以輸入多個參數空格隔開)/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.清除網站store目錄下的所有緩存:test.dd.com/data/upload/shop/store/n2.清除網站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 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 "輸入錯誤,請重新輸入";;esac
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答