Ubuntu 下备份 Jellyfin 数据的实用方案
一 备份范围与准备
- 明确需要保护的目录与卷:
- 配置与数据库:/var/lib/jellyfin(包含数据库、插件、元数据、缓存等)。
- 媒体库:如 /media、/mnt/media 等实际存放电影、剧集、音乐的目录(内容通常很大,建议与配置分开备份与存放)。
- 选择备份策略:
- 全量备份:首次或周期性完整归档,便于快速恢复。
- 增量备份:在全量基础上仅备份变化,节省时间与空间(可用 tar 的 -g 快照方式)。
- 准备与校验:
- 目标位置建议使用外置硬盘/NAS/对象存储,并确保可用空间充足。
- 备份前后进行校验(如 tar 列表、rsync 校验和),并定期演练恢复流程。
二 原生安装的系统服务备份步骤
- 步骤概览:
- 停止服务,避免写入导致不一致:
sudo systemctl stop jellyfin
- 备份配置与数据库目录(全量打包):
sudo tar -czvf jellyfin_backup_$(date +%F).tar.gz -C /var/lib/jellyfin .
- 备份媒体库(增量同步,源与目标末尾斜杠含义不同,注意保留目录结构):
sudo rsync -aAXv --delete /media/ /path/to/backup/media/
- 如需增量归档,可使用 tar 快照:
首次快照
sudo tar -czvf jellyfin_base.tar.gz -g jellyfin_snap.snar -C /var/lib/jellyfin .
后续增量
sudo tar -czvf jellyfin_inc_$(date +%F).tar.gz -g jellyfin_snap.snar -C /var/lib/jellyfin .
- 备份完成后重启服务:
sudo systemctl start jellyfin
- 将备份归档复制到异地/云端存储,并做校验与恢复演练。
三 Docker 部署的备份步骤
- 步骤概览:
- 停止容器,确保数据落盘:
docker stop jellyfin
- 备份配置卷(假设容器名为 jellyfin,挂载在 /config):
docker cp jellyfin:/config /path/to/backup/jellyfin-config
- 备份媒体库(宿主机目录直拷或 rsync):
sudo rsync -aAXv --delete /path/on/host/media/ /path/to/backup/media/
- 如需备份插件/元数据等缓存,也可从容器内打包 /config 目录后再拷贝出来。
- 迁移或恢复时,使用备份的 /config 挂载到新容器:
docker run -d --name jellyfin
-p 8096:8096
-v /path/to/backup/jellyfin-config:/config
-v /path/on/host/media:/media
jellyfin/jellyfin
- 启动后检查 Dashboard → 控制台 → 高级 → 管理 中的库扫描与插件状态。
四 自动化与异地备份建议
- 本地定时全量 + 增量:
- 使用 cron 每日全量打包配置目录,每周/每月做快照归档;媒体库用 rsync 做日常增量同步。
- 云端/对象存储:
- 将打包好的 .tar.gz 通过 rclone 或 s3fs-fuse 同步到 S3/兼容对象存储,实现异地容灾。
- 系统级快照与文件级备份:
- 系统层面可用 Timeshift(适合系统分区与关键目录快照),用户数据可用 Deja Dup;它们可与上面的 Jellyfin 专用备份配合,形成多层防护。
五 恢复要点与注意事项
- 原生安装恢复:
- 停止服务 → 清空或覆盖 /var/lib/jellyfin 为备份内容 → 启动服务:
sudo systemctl stop jellyfin
sudo rsync -aAXv /path/to/backup/jellyfin/ /var/lib/jellyfin/
sudo systemctl start jellyfin
- Docker 恢复:
- 启动新容器并挂载已备份的 /config 与 /media,首次启动后按需执行库扫描。
- 注意事项:
- 备份前后务必停止 Jellyfin,避免数据库/缓存不一致。
- 媒体库体量大,优先采用增量同步;配置与数据库建议全量打包并定期异地存放。
- 定期验证备份完整性与可恢复性,并保留多份历史版本以应对误删/勒索等风险。