绿豆沙の小窝

Back

AutoDL 14 天自动续命脚本

AutoDL 免费实例14 天自动释放,到期直接删实例,系统盘数据全没。最省心的方法:写个脚本,每 13 天用 API 重建一次实例,重置倒计时。

整体思路#

新实例(第1天) → 跑实验 → 第13天触发脚本
  → 备份数据到文件存储
  → API 创建新实例(同配置)
  → 从文件存储恢复数据
  → API 释放旧实例
  → 新实例接替,倒计时重置为14天
plaintext

用文件存储(NFS)持久化数据,系统盘只放临时环境。重建后挂载回去就行。

获取 API Token#

控制台 → 账号设置 → 开发者 Token,复制下来。

# 存为环境变量
export AUTODL_TOKEN="你的token"
bash

核心脚本#

环境恢复#

镜像里固化的环境不用动。每次 pip install 的包会丢,所以在 START_CMD 或 setup 脚本里搞定:

#!/bin/bash
# setup.sh — 新实例首次启动时执行

# 挂载文件存储(提前在控制台创建好)
# 挂载后数据目录直接可用

# 装依赖(镜像已有 conda/pytorch 就跳过)
pip install transformers datasets accelerate -q

# 拉最新代码
cd /root && git clone git@github.com:you/project.git
bash

把 START_CMD 改成 "bash /root/setup.sh",每次重建自动跑一遍。

文件存储 — 数据不丢的关键#

系统盘随实例释放,文件存储(NFS)是独立的,实例删了数据还在。新实例挂载同一个文件存储即可。

控制台 → 文件存储 → 创建 → 记下挂载路径。在 setup.sh 里:

# AutoDL 文件存储已自动挂载到 /root/autodl-fs
# 把训练输出、checkpoint、数据集放这里
ln -s /root/autodl-fs/checkpoints /root/project/checkpoints
ln -s /root/autodl-fs/datasets /root/project/data
bash

定时执行#

在本地(不是实例上)设 cron,每 13 天跑一次:

# 编辑 crontab
crontab -e

# 每月 1 号和 14 号凌晨 3 点执行
0 3 1,14 * * AUTODL_TOKEN=xxx python3 /home/you/autodl-renew.py >> /home/you/autodl-renew.log 2>&1
bash

也可以用 GitHub Actions 免费跑:

# .github/workflows/autodl-renew.yml
name: AutoDL 14天续命
on:
  schedule:
    - cron: "0 3 1,14 * *"
  workflow_dispatch:
jobs:
  renew:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pip install requests && python3 autodl-renew.py
        env:
          AUTODL_TOKEN: ${{ secrets.AUTODL_TOKEN }}
yaml

注意事项#

  • 文件存储是唯一持久化的地方,系统盘数据不备份必丢
  • 新实例 SSH 地址会变,IP/端口每次都不同,看控制台或 API 返回
  • API 创建实例用的是按量计费,创建后就开始扣费,旧实例要立刻释放
  • GPU 规格 ID 查 API 文档附录,不同卡对应不同 gpu_spec_uuid
  • 免费额度是按账号算的,一个账号同时只能有一个免费实例

常用速查#

操作命令/地址
获取 Token控制台 → 设置 → 开发者 Token
API 文档https://www.autodl.com/docs/instance_pro_api/ ↗
GPU 规格 ID查 API 文档附录
镜像 UUID控制台 → 私有镜像 → 镜像详情
查看余额POST /api/v1/dev/wallet/balance
AutoDL 14 天自动续命脚本
https://lvdousha26.github.io/blog/autodl-tutorial
Author lvdousha
Published at May 19, 2026