简单清除前端缓存脚本
环境一: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
环境二:清除指定域名和目录路径下的缓存
#!/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