snapshot
@chaterm · 收录于 1 周前
快照管理
适合你,如果需要定期备份数据或快速恢复系统状态。
/ 下载安装
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code
~/.claude/skills/(项目级 .claude/skills/)Codex CLI
~/.codex/skills/Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add chaterm/terminal-skills/snapshot/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- chaterm/terminal-skills/snapshot/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify chaterm/terminal-skills/snapshot安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
48GitHub stars
~996上下文体积 · 单文件
镜像托管
怎么用
技能原文 SKILL.md
快照管理
概述
LVM 快照、文件系统快照、云快照管理技能。
LVM 快照
创建快照
# 查看逻辑卷 lvs lvdisplay # 创建快照 lvcreate -L 10G -s -n snap_data /dev/vg0/data # 创建薄快照 lvcreate -s -n snap_data /dev/vg0/thin_data # 查看快照 lvs -a lvdisplay /dev/vg0/snap_data
挂载快照
# 挂载只读 mount -o ro /dev/vg0/snap_data /mnt/snapshot # 挂载读写 mount /dev/vg0/snap_data /mnt/snapshot
恢复数据
# 从快照恢复 lvconvert --merge /dev/vg0/snap_data # 恢复前需卸载原卷 umount /dev/vg0/data lvconvert --merge /dev/vg0/snap_data mount /dev/vg0/data /data
删除快照
# 卸载并删除 umount /mnt/snapshot lvremove /dev/vg0/snap_data
Btrfs 快照
创建快照
# 创建只读快照 btrfs subvolume snapshot -r /data /snapshots/data_$(date +%Y%m%d) # 创建可写快照 btrfs subvolume snapshot /data /snapshots/data_writable # 查看子卷 btrfs subvolume list /
管理快照
# 删除快照 btrfs subvolume delete /snapshots/data_20240101 # 发送快照(备份) btrfs send /snapshots/data_readonly | btrfs receive /backup/ # 增量发送 btrfs send -p /snapshots/old /snapshots/new | btrfs receive /backup/
ZFS 快照
创建快照
# 创建快照 zfs snapshot pool/dataset@snap_$(date +%Y%m%d) # 递归创建 zfs snapshot -r pool/dataset@snap_name # 查看快照 zfs list -t snapshot
管理快照
# 回滚 zfs rollback pool/dataset@snap_name # 克隆 zfs clone pool/dataset@snap_name pool/clone_dataset # 删除 zfs destroy pool/dataset@snap_name # 发送/接收 zfs send pool/dataset@snap | zfs receive backup/dataset
云快照
AWS EBS
# 创建快照
aws ec2 create-snapshot \
--volume-id vol-1234567890abcdef0 \
--description "Backup $(date +%Y%m%d)"
# 查看快照
aws ec2 describe-snapshots --owner-ids self
# 从快照创建卷
aws ec2 create-volume \
--snapshot-id snap-1234567890abcdef0 \
--availability-zone us-east-1a
# 删除快照
aws ec2 delete-snapshot --snapshot-id snap-1234567890abcdef0
阿里云
# 创建快照 aliyun ecs CreateSnapshot --DiskId d-xxx --SnapshotName backup # 查看快照 aliyun ecs DescribeSnapshots # 删除快照 aliyun ecs DeleteSnapshot --SnapshotId s-xxx
常见场景
场景 1:数据库一致性快照
#!/bin/bash # MySQL + LVM 快照 mysql -e "FLUSH TABLES WITH READ LOCK;" lvcreate -L 10G -s -n db_snap /dev/vg0/mysql_data mysql -e "UNLOCK TABLES;" # 备份快照 mount -o ro /dev/vg0/db_snap /mnt/snap tar -czvf /backup/mysql_$(date +%Y%m%d).tar.gz /mnt/snap umount /mnt/snap lvremove -f /dev/vg0/db_snap
场景 2:自动快照脚本
#!/bin/bash
# Btrfs 自动快照
SNAP_DIR="/snapshots"
MAX_SNAPS=7
# 创建快照
btrfs subvolume snapshot -r /data ${SNAP_DIR}/data_$(date +%Y%m%d_%H%M)
# 清理旧快照
ls -1d ${SNAP_DIR}/data_* | head -n -${MAX_SNAPS} | xargs -r btrfs subvolume delete
场景 3:快照前后钩子
#!/bin/bash # 快照前 systemctl stop application sync # 创建快照 lvcreate -L 5G -s -n app_snap /dev/vg0/app_data # 快照后 systemctl start application
故障排查
| 问题 | 排查方法 | |------|----------| | 快照空间满 | 扩展快照、减少变更 | | 快照失效 | 检查 COW 空间 | | 恢复失败 | 检查卷状态、依赖 | | 性能下降 | 减少快照数量 |
# LVM 快照状态 lvs -a -o +snap_percent # Btrfs 空间 btrfs filesystem df / btrfs filesystem usage / # ZFS 空间 zfs list -o space
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →
评论
登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。
…