Очистка кеша в Cloudflare через api по имени домена

Когда работаешь с большим пулом сайтов, довольно геморно каждый раз бегать в cloudflare чтобы очистить кеш после какого либо обновления. Панелька клоуда частенько подтормаживает и даже бывает недоступна. Сбросить кеш в cloudflare по api достаточно просто.

Вот скриптик, который это делает:

#!/bin/bash

DOMAIN=example.com

echo "Начинаю сброс кеша на clodflare для $DOMAIN"

    response=$(curl -s --request GET \
        --url https://api.cloudflare.com/client/v4/zones?name=$DOMAIN \
        --header 'Content-Type: application/json' \
        --header 'X-Auth-Email: YOU_EMAIL' \
        --header 'X-Auth-Key: YOU_API_KEY')

    # Проверка на ошибку выполнения curl
    if [ $? -ne 0 ]; then
        echo "Ошибка выполнения curl запроса к api"
        exit 1
    fi

    # Извлечение первого значения "id" из строки JSON с помощью grep
    id=$(echo "$response" | grep -oP '(?<="id":")[^"]+' | head -n 1)

    # Проверка на наличие значения "id"
    if [ -z "$id" ]; then
        echo "Не удалось извлечь значение id для $DOMAIN"
        exit 1
    fi

    curl --request POST \
        --url https://api.cloudflare.com/client/v4/zones/$id/purge_cache \
        --header 'Content-Type: application/json' \
        --header 'X-Auth-Email: YOU_EMAIL' \
        --header 'X-Auth-Key: YOU_API_KEY' \
        --data "{\"purge_everything\":true}"

    exit 0

Это очистит весь кеш для домена в clouflare. Ну а дальше дело за автоматизацией, либо же просто ловить домен в аргументе к скрипту.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *