red5553 adlı üyeden alıntı: mesajı görüntüle
Aşağıdaki kısımda her domaine ait "ZONE_ID_1 " numaralarını 1 seferlik yazmam mı lazım? Yani böyle böyle 500 domainin de zone id kodu girilecek?

# Config
API_TOKEN="YOUR_CLOUDFLARE_API_TOKEN"
ZONES=("ZONE_ID_1" "ZONE_ID_2")
THRESHOLD_HIGH=10
THRESHOLD_LOW=5
STATE_FILE="/var/tmp/loadcheck_state"
Güncellenmiş Hali

#!/bin/bash

# Cloudflare API Token
API_TOKEN="YOUR_CLOUDFLARE_API_TOKEN"

# Threshold değerleri
THRESHOLD_HIGH=10
THRESHOLD_LOW=5

# Önceki durumu saklayacak dosya
STATE_FILE="/var/tmp/loadcheck_state"

# Load average 1 dakikalık
LOAD=$(awk '{print $1}' /proc/loadavg)
echo "$(date) - Current load: $LOAD"

# Önceki durumu oku
PREV_STATE="normal"
if [ -f "$STATE_FILE" ]; then
    PREV_STATE=$(cat "$STATE_FILE")
fi

# Yeni durum belirle
NEW_STATE="$PREV_STATE"
if (( $(echo "$LOAD > $THRESHOLD_HIGH" | bc -l) )); then
    NEW_STATE="high"
elif (( $(echo "$LOAD < $THRESHOLD_LOW" | bc -l) )); then
    NEW_STATE="normal"
fi

# Durum değiştiyse API çağrısı yap
if [ "$NEW_STATE" != "$PREV_STATE" ]; then
    # Tüm zone ID'lerini dinamik olarak al
    ZONES=($(curl -s -X GET "https://api.cloudflare.com/client/v4/zones" \
        -H "Authorization: Bearer $API_TOKEN" \
        -H "Content-Type: application/json" | jq -r '.result[].id'))

    for ZONE in "${ZONES[@]}"; do
        if [ "$NEW_STATE" == "high" ]; then
            VALUE="under_attack"
            ACTION="enabled"
        else
            VALUE="essentially_off"
            ACTION="disabled"
        fi

        RESPONSE=$(curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$ZONE/settings/security_level" \
            -H "Authorization: Bearer $API_TOKEN" \
            -H "Content-Type: application/json" \
            --data "{\"value\":\"$VALUE\"}")

        SUCCESS=$(echo "$RESPONSE" | grep -o '"success":true')
        if [ "$SUCCESS" == '"success":true' ]; then
            echo "$(date) - Zone $ZONE: Under Attack Mode $ACTION."
        else
            echo "$(date) - Zone $ZONE: Failed to change mode. Response: $RESPONSE"
        fi
    done
    # Durumu kaydet
    echo "$NEW_STATE" > "$STATE_FILE"
else
    echo "$(date) - Load state unchanged ($NEW_STATE). No action."
fi