ubuntu上jellyfin的备份与恢复怎么做
小樊
45
2025-11-23 06:30:57
Ubuntu 上 Jellyfin 的备份与恢复
一 备份与恢复总览
- 核心备份对象:
- 配置与数据库:Jellyfin 的配置、数据库、插件与缓存,默认位于 /var/lib/jellyfin(系统包安装)。
- 媒体库文件:你的电影、剧集、音乐等实际媒体文件(位置自定义,备份时建议一并纳入计划)。
- 建议做法:
- 在备份前停止 Jellyfin 服务,避免数据库写入导致不一致。
- 使用 tar 或 rsync 做定期归档/增量同步,并将备份复制到外部硬盘或远端存储。
- 恢复时按“先配置后媒体”的顺序,恢复后核对权限并触发库扫描。
二 系统包安装的备份与恢复步骤
- 备份
- 停止服务
sudo systemctl stop jellyfin
- 打包数据目录(含隐藏文件)
sudo tar -czvf jellyfin_backup_$(date +%F).tar.gz -C /var/lib/jellyfin .
- 如需连同媒体库一起归档(可选)
sudo tar -czvf media_backup_$(date +%F).tar.gz -C /path/to/your/media .
- 将备份复制到外部存储
cp jellyfin_backup_*.tar.gz /path/to/external/drive/
- 恢复
- 建议先停止服务
sudo systemctl stop jellyfin
- 清空或重命名现有数据目录(谨慎操作)
sudo mv /var/lib/jellyfin /var/lib/jellyfin.bak_$(date +%F)
- 解压备份到目标位置
sudo mkdir -p /var/lib/jellyfin
sudo tar -xzvf jellyfin_backup_YYYY-MM-DD.tar.gz -C /var/lib/jellyfin
- 如恢复了媒体归档,也解压到你的媒体目录
sudo tar -xzvf media_backup_YYYY-MM-DD.tar.gz -C /path/to/your/media
- 修正权限(Jellyfin 通常以 jellyfin:jellyfin 运行,按你的实际环境调整)
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin
sudo chown -R jellyfin:jellyfin /path/to/your/media
- 启动服务并验证
sudo systemctl start jellyfin
sudo systemctl status jellyfin
- 在 Web 管理端执行库扫描(Dashboard → 库 → 扫描全部库)。
三 Docker 部署的备份与恢复步骤
- 备份
- 停止容器
docker stop jellyfin
- 备份配置目录(假设容器名为 jellyfin,挂载到宿主机的 /path/to/config)
docker cp jellyfin:/config /path/to/backup/config_$(date +%F)
- 如需备份媒体库(挂载到宿主机的 /path/to/media)
sudo rsync -av /path/to/media /path/to/backup/media_$(date +%F)
- 恢复
- 如需全新部署,先启动一个临时容器仅用于拷贝回配置(可选)
docker run -d --name jellyfin_tmp -v /path/to/backup/config_YYYY-MM-DD:/config jellyfin/jellyfin
docker stop jellyfin_tmp && docker rm jellyfin_tmp
- 启动正式容器并挂载已备份的配置与媒体
docker run -d --name jellyfin
-p 8096:8096
-v /path/to/backup/config_YYYY-MM-DD:/config
-v /path/to/your/media:/media
jellyfin/jellyfin
- 在 Web 管理端执行库扫描(Dashboard → 库 → 扫描全部库)。
四 自动化与异地备份建议
- 定时归档脚本示例(系统包安装,保留最近 7 天)
- 备份脚本 /usr/local/bin/jellyfin_backup.sh
#!/usr/bin/env bash
set -e
BACKUP_DIR=“/path/to/backup”
DATE=$(date +%F)
sudo systemctl stop jellyfin
tar -czvf “$BACKUP_DIR/jellyfin_$DATE.tar.gz” -C /var/lib/jellyfin .
sudo systemctl start jellyfin
清理 7 天前
find “$BACKUP_DIR” -name ‘jellyfin_*.tar.gz’ -mtime +7 -delete
- 定时任务
sudo chmod +x /usr/local/bin/jellyfin_backup.sh
echo “0 2 * * * root /usr/local/bin/jellyfin_backup.sh” | sudo tee /etc/cron.d/jellyfin_backup
- 异地/云端存储
- 可将备份文件 cp 到已挂载的 S3 目录,或使用 rclone 同步到对象存储,实现自动化异地备份。
五 常见问题与注意事项
- 权限问题:恢复后如出现“扫不到文件/无权限”,请确保媒体目录对 jellyfin 用户可读(必要时用 chown/chmod 或 ACL 修正)。
- 版本与升级:跨大版本恢复前建议先备份;升级前也建议先备份,升级后如异常可按上述步骤回滚配置目录。
- 数据库一致性:备份前停止服务能显著降低数据库不一致风险;不建议在运行中直接拷贝数据库文件。