Skip to content
Skillv1.0.0

cloud-backup

云备份方案

by chaterm(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from chaterm/terminal-skills (backup/cloud-backup/SKILL.md). Install upstream with npx skills add chaterm/terminal-skills --skill cloud-backup. Copyright stays with the author.

云备份方案

概述

S3/OSS 备份、跨区域复制、生命周期管理技能。

AWS S3 备份

基础操作

# 上传文件
aws s3 cp backup.tar.gz s3://my-bucket/backups/

# 上传目录
aws s3 sync /backup s3://my-bucket/backups/

# 下载
aws s3 cp s3://my-bucket/backups/backup.tar.gz ./
aws s3 sync s3://my-bucket/backups/ /restore/

# 列出文件
aws s3 ls s3://my-bucket/backups/
aws s3 ls s3://my-bucket/backups/ --recursive

高级选项

# 排除文件
aws s3 sync /backup s3://my-bucket/ --exclude "*.log"

# 存储类型
aws s3 cp backup.tar.gz s3://my-bucket/ --storage-class STANDARD_IA
aws s3 cp backup.tar.gz s3://my-bucket/ --storage-class GLACIER

# 服务端加密
aws s3 cp backup.tar.gz s3://my-bucket/ --sse AES256
aws s3 cp backup.tar.gz s3://my-bucket/ --sse aws:kms --sse-kms-key-id alias/my-key

# 多部分上传
aws s3 cp large-file.tar.gz s3://my-bucket/ --expected-size 10737418240

生命周期策略

{
  "Rules": [
    {
      "ID": "BackupLifecycle",
      "Status": "Enabled",
      "Filter": {"Prefix": "backups/"},
      "Transitions": [
        {"Days": 30, "StorageClass": "STANDARD_IA"},
        {"Days": 90, "StorageClass": "GLACIER"}
      ],
      "Expiration": {"Days": 365}
    }
  ]
}
# 应用策略
aws s3api put-bucket-lifecycle-configuration \
    --bucket my-bucket \
    --lifecycle-configuration file://lifecycle.json

跨区域复制

# 启用版本控制
aws s3api put-bucket-versioning \
    --bucket source-bucket \
    --versioning-configuration Status=Enabled

# 配置复制规则
aws s3api put-bucket-replication \
    --bucket source-bucket \
    --replication-configuration file://replication.json

阿里云 OSS 备份

基础操作

# 上传
ossutil cp backup.tar.gz oss://my-bucket/backups/
ossutil cp -r /backup oss://my-bucket/backups/

# 下载
ossutil cp oss://my-bucket/backups/backup.tar.gz ./

# 同步
ossutil sync /backup oss://my-bucket/backups/

# 列出
ossutil ls oss://my-bucket/backups/

存储类型

# 低频访问
ossutil cp backup.tar.gz oss://my-bucket/ --meta x-oss-storage-class:IA

# 归档
ossutil cp backup.tar.gz oss://my-bucket/ --meta x-oss-storage-class:Archive

Azure Blob 备份

基础操作

# 上传
az storage blob upload \
    --account-name myaccount \
    --container-name backups \
    --name backup.tar.gz \
    --file backup.tar.gz

# 下载
az storage blob download \
    --account-name myaccount \
    --container-name backups \
    --name backup.tar.gz \
    --file backup.tar.gz

# 同步
azcopy sync /backup "https://myaccount.blob.core.windows.net/backups"

rclone 通用工具

配置

# 交互式配置
rclone config

# 配置文件 ~/.config/rclone/rclone.conf
[s3]
type = s3
provider = AWS
access_key_id = xxx
secret_access_key = xxx
region = us-east-1

[oss]
type = s3
provider = Alibaba
access_key_id = xxx
secret_access_key = xxx
endpoint = oss-cn-hangzhou.aliyuncs.com

操作

# 同步
rclone sync /backup s3:my-bucket/backups

# 复制
rclone copy /backup s3:my-bucket/backups

# 加密备份
rclone sync /backup crypt:backups

常见场景

场景 1:自动备份脚本

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
S3_BUCKET="s3://my-bucket/backups"

# 创建备份
tar -czvf ${BACKUP_DIR}/backup_${DATE}.tar.gz /data

# 上传到 S3
aws s3 cp ${BACKUP_DIR}/backup_${DATE}.tar.gz ${S3_BUCKET}/

# 清理本地
find ${BACKUP_DIR} -name "backup_*.tar.gz" -mtime +7 -delete

# 验证
aws s3 ls ${S3_BUCKET}/backup_${DATE}.tar.gz

场景 2:数据库云备份

#!/bin/bash
# MySQL 备份到 S3
mysqldump -u root -p database | gzip | \
    aws s3 cp - s3://my-bucket/mysql/backup_$(date +%Y%m%d).sql.gz

# PostgreSQL 备份到 S3
pg_dump database | gzip | \
    aws s3 cp - s3://my-bucket/postgres/backup_$(date +%Y%m%d).sql.gz

场景 3:增量同步

#!/bin/bash
# 使用 aws s3 sync 增量同步
aws s3 sync /data s3://my-bucket/data/ \
    --exclude "*.tmp" \
    --delete

# 使用 rclone
rclone sync /data remote:bucket/data --progress

场景 4:灾备复制

# 跨区域复制配置
{
  "Role": "arn:aws:iam::account:role/replication-role",
  "Rules": [{
    "Status": "Enabled",
    "Priority": 1,
    "Filter": {},
    "Destination": {
      "Bucket": "arn:aws:s3:::dest-bucket",
      "StorageClass": "STANDARD_IA"
    }
  }]
}

成本优化

存储类型 适用场景 成本
Standard 频繁访问
IA 月访问
Glacier 年访问
Deep Archive 归档 最低

故障排查

问题 排查方法
上传失败 检查权限、网络、大小限制
同步慢 使用多线程、分片上传
成本高 检查存储类型、生命周期
恢复慢 Glacier 需要先解冻
# 检查 S3 权限
aws s3api get-bucket-policy --bucket my-bucket

# 检查上传状态
aws s3api list-multipart-uploads --bucket my-bucket

# Glacier 解冻
aws s3api restore-object \
    --bucket my-bucket \
    --key backups/archive.tar.gz \
    --restore-request '{"Days":7,"GlacierJobParameters":{"Tier":"Standard"}}'

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/chaterm-terminal-skills-cloud-backup/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

chaterm-terminal-skills-cloud-backup.ocm.jsonjson
{
  "ocm": "1",
  "id": "chaterm-terminal-skills-cloud-backup",
  "kind": "skill",
  "name": "cloud-backup",
  "description": "云备份方案",
  "publisher": "chaterm",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "backup",
      "cloud",
      "s3",
      "oss",
      "azure-blob",
      "lifecycle",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "云备份方案"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/chaterm/terminal-skills",
      "path": "backup/cloud-backup/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/chaterm/terminal-skills/blob/HEAD/backup/cloud-backup/SKILL.md",
      "key": "chaterm/terminal-skills/backup/cloud-backup/SKILL.md"
    }
  },
  "instructions": "# 云备份方案\n\n## 概述\nS3/OSS 备份、跨区域复制、生命周期管理技能。\n\n## AWS S3 备份\n\n### 基础操作\n```bash\n# 上传文件\naws s3 cp backup.tar.gz s3://my-bucket/backups/\n\n# 上传目录\naws s3 sync /backup s3://my-bucket/backups/\n\n# 下载\naws s3 cp s3://my-bucket/backups/backup.tar.gz ./\naws s3 sync s3://my-bucket/backups/ /restore/\n\n# 列出文件\naws s3 ls s3://my-bucket/backups/\naws s3 ls s3://my-bucket/backups/ --recursive\n```\n\n### 高级选项\n```bash\n# 排除文件\naws s3 sync /backup s3://my-bucket/ --exclude \"*.log\"\n\n# 存储类型\naws s3 cp backup.tar.gz s3://my-bucket/ --storage-class STANDARD_IA\naws s3 cp backup.tar.gz s3://my-bucket/ --storage-class GLACIER\n\n# 服务端加",
  "cost": {
    "context_tokens": 1162
  }
}

Fetch it by URL: GET /api/v1/registry/chaterm-terminal-skills-cloud-backup/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.