自动删除CloudFlare域名缓存脚本
在Cloudflare page搭建好站点后,发现每次更新还要手动删一次缓存,想着干脆写个脚本,Cloudflare已经给提供了删除缓存提交的url和密钥,写个脚本就OK了。
序言
之所以要写个删除缓存的脚本最主要是因为Cloudflare对于国内的访问速度实在不太友好,控制面板进入非常麻烦。
为什么要选择用Shell脚本呢?因为还是我之前文章说过的,Shell脚本在任何Unix系统上执行,非常方便。
教程正文
一.获取Global API Key和清除缓存URL
首先进入CloudFlare控制面板然后登录账号,进入你需要清除缓存的域名的面板中。
在你域名控制面板中的概述页面,下滑,在API下方找到获取您的API令牌,在API密钥下方找到Global API Key输入密码后查看密钥内容并且复制。详细如下图


- 返回你指定的域名控制面板,在右侧列表中依次点击缓存-配置按钮,然后进入域名缓存配置页,在清除缓存一栏中的下方找到蓝色的API按钮并且点击,复制弹出后的复制框中的POST后面的链接。详细如下图


二.修改脚本配置
我已经找GPT把脚本写好了,你自己替换下面脚本中的参数就可以了
目前本脚本仅适用于Centos等系统执行,其他系统请自行调整指令格式
请分别修改设置以下字段:
1.API_URL 粘贴你复制的Url
API密钥 粘贴你复制的Global API Key密钥
你的邮箱 修改为你CloudFlare账号绑定的邮箱
脚本第一代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #!/bin/bash
API_URL=""
API_KEY=""
response=$(curl -s -w "%{http_code}" -X POST "$API_URL" \ -H "X-Auth-Email: 你的邮箱" \ -H "X-Auth-Key: $API_KEY" \ -H "Content-Type: application/json" \ --data '{"purge_everything":true}')
http_status="${response: -3}"
if [ "$http_status" == "200" ]; then echo -e "\e[32mCache cleared successfully!\e[0m" else echo -e "\e[31mFailed to clear cache. HTTP Status Code: $http_status\e[0m" fi
|
脚本第二代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| ZONE_ID="" API_URL="https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache"
CLOUDFLARE_API_KEY="" CLOUDFLARE_EMAIL=""
response=$(curl -s -w "%{http_code}" -X POST "$API_URL" \ -H "Content-Type: application/json" \ -H "X-Auth-Email: $CLOUDFLARE_EMAIL" \ -H "X-Auth-Key: $CLOUDFLARE_API_KEY" \ -d '{"purge_everything":true}')
http_status="${response: -3}"
if [ "$http_status" == "200" ]; then echo -e "\e[32mCache cleared successfully!\e[0m" else echo -e "\e[31mFailed to clear cache. HTTP Status Code: $http_status\e[0m" echo "$response" fi
|
两代脚本功能都一样,第二个我感觉更方便一些。
随便保存到一个xxx.sh文件,然后执行就OK
完结撒花!┗( ˘ω˘ )┛
鸣心/Write