nginx 캐 시 간단 한 스 크 립 트 일괄 삭제
2164 단어 nginx 캐 시nginx 캐 시 지우 기
환경 1: nginx 는 CDN 전단 캐 시 로 서 각 지역 캐 시 에 있 는 모든 도 메 인 이름 의 그림 파일 캐 시 를 삭제 합 니 다.
스 크 립 트: clear. sh
#!/bin/sh
#---CDN cache host list---
cat >>/tmp/iplist.txt <<EOF
61.x.x.x
45.x.x.x
122.x.x.x
EOF
#---purge cache script send to all CDN server---
for ip in `cat /tmp/iplist.txt`
do
ping -w 1 -c 1 $ip >/dev/null
if [ $? -eq 0 ]
then
scp /tmp/nginx-clear.sh root@$ip:/tmp
ssh $ip "sh /tmp/nginx-clear.sh &&rm -f /tmp/nginx-clear.sh"
else
echo "$ip host is not exist or network is no connect,continue next host...."
fi
done
인 용 된 스 크 립 트 nginx - clear. sh
#!/bin/sh #-----clear jpg type cache---- cache_path="/data/proxy_cache_dir" grep -a -r jpg $cache_path |strings |awk -F: '{print $3}' |sed 's/^ //g'| awk 'BEGIN{FS=OFS="/"}$1="http://"$1OFS"purge"' >>/tmp/cachelist.txt localip= `ifconfig eth0|awk -F'[ |:]+' '/inet addr/{print $4}'` cat >>/etc/hosts <<EOF $localip imgtu.aa.net $localip imgtu.bb.com $localip imgtu.cc.com $localip imgtu.dd.com EOF for url in `cat /tmp/cachelist.txt` do curl $url if [ $? -eq 0 ] then echo "$url is not clean,failure,please check......" fi done
환경 2: 지정 한 도 메 인 이름과 디 렉 터 리 경로 의 캐 시 를 삭제 합 니 다.#!/bin/bash #---source host take out the directory path for each in /var/wwwroot/imgtu.xxx.net/web/uploads/content/201303/*/* do echo "$each" >>/tmp/test0417 done #!/bin/bash #----------clean cache script---------- cat >>/tmp/iplist.txt <<EOF 61.x.x.x 45.x.x.x 122.x.x.x EOF echo "please input you need clean domainname:" read domainname URL=`cat /tmp/test0417 |sed 's:/var/wwwroot/:http\://:g' |sed 's:/web:\:81/purge:g'` for host in `cat /tmp/iplist.txt` do echo "$host $domainname" >>/etc/hosts for i in $URL curl $i done done