自动删除CloudFlare域名缓存脚本

本文最后更新于 2024年8月6日 下午

自动删除CloudFlare域名缓存脚本

在Cloudflare page搭建好站点后,发现每次更新还要手动删一次缓存,想着干脆写个脚本,Cloudflare已经给提供了删除缓存提交的API和密钥,写个脚本就好了。

序言

  1. 之所以要写个删除缓存的脚本最主要是因为Cloudflare对于国内的访问速度实在不太友好,控制面板进入非常麻烦。

  2. 为什么要选择用Shell脚本呢?因为Shell脚本在任何Unix系统上执行,非常方便。

正文

一.获取API Token和区域ID

  1. 首先进入CloudFlare控制面板然后登录账号,进入你需要清除缓存域名的控制面板中。

  2. 在你域名控制面板中的概述页面,下滑,在API下方找到区域ID进行复制详细如下图

区域ID复制

  1. 点击获取您的API,如上图,进入API令牌管理页面

  2. 点击API令牌的创建令牌,如下图

创建令牌

  1. 下滑,找到自定义令牌,点击开始使用。

自定义令牌

  1. 在进入的页面的权限设置从左到右第一个选项框为区域,第二个框为清除缓存,第三个框为清除。在区域资源,根据自己实际情况选择作用的范围,建议仅选择需要删除缓存的域名区域,然后点击创建。

注意:权限中从左到右第一个框设置了区域后才有清除缓存的选项,不然没有

设置配置

二.修改脚本配置

我已经找GPT把脚本写好了,你自己替换下面脚本中的参数就可以了

请分别修改设置以下字段:

1.ZONE_ID 替换为你复制的区域IDA

  1. CLOUDFLARE_API_TOKEN 替换你申请的API密钥

注意:经过测试可以使用,如果报错根据报错内容进行修复,通常是软件包未安装或者网络错误

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

# Cloudflare API Endpoint (使用正确的 Zone ID)
ZONE_ID="your_zone_id" # 替换为你的 Zone ID
API_URL="https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache"

# 使用 API 令牌(而非 Global API Key)
CLOUDFLARE_API_TOKEN="your_api_token" # 替换为你的 API 令牌

# 检查必要的变量
if [[ -z "$ZONE_ID" || -z "$CLOUDFLARE_API_TOKEN" ]]; then
echo -e "\e[31m错误: 必须设置 ZONE_ID 和 CLOUDFLARE_API_TOKEN\e[0m" >&2
exit 1
fi

# 发出 POST 请求以清除缓存
response=$(curl -s -w "%{http_code}" -X POST "$API_URL" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-d '{"purge_everything":true}')

http_status="${response: -3}" # 获取 HTTP 状态码

if [ "$http_status" == "200" ]; then
echo -e "\e[32m缓存清除成功!\e[0m"
exit 0
else
echo -e "\e[31m缓存清除失败!HTTP 状态码: $http_status\e[0m" >&2
echo "$response" >&2
exit 1
fi

随便保存到一个xxx.sh文件,然后执行就OK

完结撒花!┗( ˘ω˘ )┛

 

鸣心/Write

自动删除CloudFlare域名缓存脚本
https://b.wihi.top/posts/e9532218.html
作者
鸣心
发布于
2024年4月21日
更新于
2024年8月6日
许可协议