logo NodeSeekbeta

用脚本抢鸡成功

123
  • 恭喜

  • 12g还是好抢的,手动说不定都能开到。24就得抢了

  • 厉害~

  • 甲骨文脚本吗?

  • @jhsyue #14 是的,让claude帮我写了一个甲骨文脚本。放在我的oracle上抢oracle。早上只开了一个最小的。

  • 🐂

  • 推来用一下

  • @zxcvb #17 claude写的,不知道有没有问题。

    #!/usr/bin/env bash
    set -uo pipefail

    读取配置

    source "$(dirname "$0")/grab.conf"

    OCI="/home/ubuntu/bin/oci"
    LOG="$(dirname "$0")/grab.log"

    log(){ echo "[$(date '+%F %T')] $*" | tee -a "$LOG"; }

    tg(){ # 发 Telegram 通知,失败不影响主流程
    curl -s --max-time 15 "$TG_BASE"
    --data-urlencode "chat_id=${TG_CHAT_ID}"
    --data-urlencode "text=$1" >/dev/null 2>&1 || true
    }

    刹车二(前置):已有 cpp 实例就别再抢

    exists(){
    $OCI compute instance list
    --compartment-id "$COMPARTMENT_ID"
    --lifecycle-state RUNNING
    --query "data[?"display-name"=='${INSTANCE_NAME}'] | length(@)"
    --raw-output 2>/dev/null
    }

    log "===== 抢机启动:${INSTANCE_NAME} ${OCPU}C${MEM_GB}G @ ${AD} ====="
    tg "🚀 抢机启动:${INSTANCE_NAME} ${OCPU}C/${MEM_GB}G,开始尝试。"

    for ((i=1; i<=MAX_TRIES; i++)); do

    刹车二

    cnt=$(exists)
    if [[ "$cnt" =~ ^[0-9]+$ ]] && (( cnt > 0 )); then
    log "检测到已存在 RUNNING 的 ${INSTANCE_NAME},停止。"
    tg "✅ 已存在实例 ${INSTANCE_NAME},脚本停止(防重复)。"
    exit 0
    fi

    log "第 ${i}/${MAX_TRIES} 次尝试创建…"
    OUT=$($OCI compute instance launch
    --compartment-id "$COMPARTMENT_ID"
    --availability-domain "$AD"
    --shape "VM.Standard.A1.Flex"
    --shape-config "{"ocpus"😒{OCPU},"memoryInGBs"😒{MEM_GB}}"
    --image-id "$IMAGE_ID"
    --subnet-id "$SUBNET_ID"
    --assign-public-ip true
    --display-name "$INSTANCE_NAME"
    --boot-volume-size-in-gbs "$BOOT_GB"
    --metadata "{"ssh_authorized_keys":"${SSH_PUBKEY}"}"
    2>&1)
    RC=$?

    if (( RC == 0 )); then
    # 刹车一:成功即停
    OCID=$(echo "$OUT" | grep -o 'ocid1.instance[^"]*' | head -1)
    log "🎉 创建成功!OCID=${OCID}"
    tg "🎉 抢到了!${INSTANCE_NAME} ${OCPU}C/${MEM_GB}G 创建成功(第 ${i} 次)。去控制台看公网 IP。"
    exit 0
    fi

    if echo "$OUT" | grep -qi "Out of host capacity"; then
    log "容量不足,等待重试。"
    else
    # 非容量错误:立即停,别傻抢
    log "❌ 非容量错误,停止:$OUT"
    tg "⚠️ 抢机遇到非容量错误已停止,请查日志:$(echo "$OUT" | head -c 300)"
    exit 1
    fi

    sleep $(( SLEEP_BASE + RANDOM % 21 )) # 60s + 0~20s 抖动
    done

    刹车三:次数耗尽

    log "达到最大尝试次数 ${MAX_TRIES},退出。"
    tg "⏹ 抢机达到上限 ${MAX_TRIES} 次仍未成功,已停止。可重新启动。"
    exit 2

    ubuntu@rss-vnic:~$ cat oci-grab/grab.conf

    ===== OCI 抢机配置 =====

    COMPARTMENT_ID=""
    AD=""
    SUBNET_ID=""
    IMAGE_ID=""
    SSH_PUBKEY=""

    实例规格

    INSTANCE_NAME="cpp"
    OCPU=2
    MEM_GB=12
    BOOT_GB=100

    抢机节奏

    MAX_TRIES=800
    SLEEP_BASE=60

    Telegram 通知

    TG_BASE="https://"
    TG_CHAT_ID=""

  • @kennyiskw146 #10 开nat🐔分享出去,收点钱,我刚刚买了一个挺快的网速

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有59883位seeker

🎉欢迎新用户🎉