{
  "schemaVersion": "1.0",
  "item": {
    "slug": "backups",
    "name": "Backup",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/ivangdavila/backups",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/backups",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/backups",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=backups",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "backups",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T03:06:38.258Z",
      "expiresAt": "2026-05-06T03:06:38.258Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=backups",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=backups",
        "contentDisposition": "attachment; filename=\"backups-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "backups"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/backups"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/backups",
    "agentPageUrl": "https://openagent3.xyz/skills/backups/agent",
    "manifestUrl": "https://openagent3.xyz/skills/backups/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/backups/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "The Only Rule That Matters",
        "body": "Untested backups are not backups — schedule regular restore tests, not just backup jobs\nTest restores to different hardware/location — validates both backup and restore procedure\nTime the restore — know how long recovery actually takes before disaster strikes"
      },
      {
        "title": "3-2-1 Rule Violations",
        "body": "Same disk as source data = not a backup — disk failure loses both\nSame server as source = not a backup — ransomware/fire/theft takes both\nSame cloud account = risky — account compromise or provider issue loses both\nCloud sync (Dropbox, Drive) is not backup — syncs deletions and corruption too"
      },
      {
        "title": "Ransomware Protection",
        "body": "Backups accessible from production get encrypted too — air gap or immutable storage required\nAppend-only/immutable storage prevents deletion — S3 Object Lock, Backblaze B2 with retention\nOffline rotation (USB drives, tapes) for critical data — can't encrypt what's not connected\nTest restoring from immutable backup — verify ransomware can't corrupt the restore process"
      },
      {
        "title": "Database Backup Traps",
        "body": "File copy of running database = corrupted backup — use pg_dump, mysqldump, mongodump\nPoint-in-time recovery needs WAL/binlog archiving — dump alone loses recent transactions\nLarge databases: pg_dump locks tables — use pg_basebackup or logical replication for zero downtime\nTest restore to different server — verifies backup is self-contained"
      },
      {
        "title": "Incremental Backup Pitfalls",
        "body": "Incrementals depend on chain — one corrupted backup breaks all following\nLong chains slow restores — schedule periodic full backups\nDeduplication saves space but adds complexity — single repo corruption affects all backups\nVerify backup integrity regularly — bit rot happens, checksums catch it"
      },
      {
        "title": "Retention Mistakes",
        "body": "No retention policy = storage fills up — define and automate cleanup\nToo aggressive retention = can't recover old corruption — keep monthlies for a year minimum\nLegal/compliance requirements may mandate retention — check before setting policy\nGrandfather-father-son pattern: daily/weekly/monthly tiers"
      },
      {
        "title": "Filesystem Traps",
        "body": "Permissions and ownership often lost — verify restore preserves them, or document expected state\nSymlinks may not backup correctly — some tools follow, some copy link, test behavior\nSparse files may inflate — 1GB sparse file becomes 1GB actual in backup\nExtended attributes and ACLs — not all tools preserve them"
      },
      {
        "title": "Cloud and Remote",
        "body": "Encrypt before upload — cloud provider breach shouldn't expose your data\nBandwidth costs add up — initial seed via physical drive for large datasets\nRegion matters for disaster recovery — same region as production doesn't survive regional outage\nEgress fees can be brutal — know restore costs before emergency"
      },
      {
        "title": "Tool-Specific",
        "body": "rsync --delete on wrong direction destroys source — always double-check source/destination\nrestic/borg need repository password — lose it = lose all backups, no recovery\nTarball without compression: faster, but larger — choose based on CPU vs storage tradeoff\nSnapshots (LVM, ZFS, cloud) are not backups — same storage system, same failure domain"
      },
      {
        "title": "Documentation",
        "body": "Document restore procedure — you won't remember under pressure\nStore procedure outside the backup — printed, different system, password manager\nInclude credentials, paths, expected time — everything needed to restore at 3am"
      }
    ],
    "body": "The Only Rule That Matters\nUntested backups are not backups — schedule regular restore tests, not just backup jobs\nTest restores to different hardware/location — validates both backup and restore procedure\nTime the restore — know how long recovery actually takes before disaster strikes\n3-2-1 Rule Violations\nSame disk as source data = not a backup — disk failure loses both\nSame server as source = not a backup — ransomware/fire/theft takes both\nSame cloud account = risky — account compromise or provider issue loses both\nCloud sync (Dropbox, Drive) is not backup — syncs deletions and corruption too\nRansomware Protection\nBackups accessible from production get encrypted too — air gap or immutable storage required\nAppend-only/immutable storage prevents deletion — S3 Object Lock, Backblaze B2 with retention\nOffline rotation (USB drives, tapes) for critical data — can't encrypt what's not connected\nTest restoring from immutable backup — verify ransomware can't corrupt the restore process\nDatabase Backup Traps\nFile copy of running database = corrupted backup — use pg_dump, mysqldump, mongodump\nPoint-in-time recovery needs WAL/binlog archiving — dump alone loses recent transactions\nLarge databases: pg_dump locks tables — use pg_basebackup or logical replication for zero downtime\nTest restore to different server — verifies backup is self-contained\nIncremental Backup Pitfalls\nIncrementals depend on chain — one corrupted backup breaks all following\nLong chains slow restores — schedule periodic full backups\nDeduplication saves space but adds complexity — single repo corruption affects all backups\nVerify backup integrity regularly — bit rot happens, checksums catch it\nRetention Mistakes\nNo retention policy = storage fills up — define and automate cleanup\nToo aggressive retention = can't recover old corruption — keep monthlies for a year minimum\nLegal/compliance requirements may mandate retention — check before setting policy\nGrandfather-father-son pattern: daily/weekly/monthly tiers\nFilesystem Traps\nPermissions and ownership often lost — verify restore preserves them, or document expected state\nSymlinks may not backup correctly — some tools follow, some copy link, test behavior\nSparse files may inflate — 1GB sparse file becomes 1GB actual in backup\nExtended attributes and ACLs — not all tools preserve them\nCloud and Remote\nEncrypt before upload — cloud provider breach shouldn't expose your data\nBandwidth costs add up — initial seed via physical drive for large datasets\nRegion matters for disaster recovery — same region as production doesn't survive regional outage\nEgress fees can be brutal — know restore costs before emergency\nTool-Specific\nrsync --delete on wrong direction destroys source — always double-check source/destination\nrestic/borg need repository password — lose it = lose all backups, no recovery\nTarball without compression: faster, but larger — choose based on CPU vs storage tradeoff\nSnapshots (LVM, ZFS, cloud) are not backups — same storage system, same failure domain\nDocumentation\nDocument restore procedure — you won't remember under pressure\nStore procedure outside the backup — printed, different system, password manager\nInclude credentials, paths, expected time — everything needed to restore at 3am"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/backups",
    "publisherUrl": "https://clawhub.ai/ivangdavila/backups",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/backups",
    "downloadUrl": "https://openagent3.xyz/downloads/backups",
    "agentUrl": "https://openagent3.xyz/skills/backups/agent",
    "manifestUrl": "https://openagent3.xyz/skills/backups/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/backups/agent.md"
  }
}