温馨提示×

ubuntu上jellyfin的备份与恢复怎么做

小樊
45
2025-11-23 06:30:57
栏目: 智能运维

Ubuntu 上 Jellyfin 的备份与恢复

一 备份与恢复总览

  • 核心备份对象:
    • 配置与数据库:Jellyfin 的配置、数据库、插件与缓存,默认位于 /var/lib/jellyfin(系统包安装)。
    • 媒体库文件:你的电影、剧集、音乐等实际媒体文件(位置自定义,备份时建议一并纳入计划)。
  • 建议做法:
    • 在备份前停止 Jellyfin 服务,避免数据库写入导致不一致。
    • 使用 tarrsync 做定期归档/增量同步,并将备份复制到外部硬盘或远端存储
    • 恢复时按“先配置后媒体”的顺序,恢复后核对权限并触发库扫描。

二 系统包安装的备份与恢复步骤

  • 备份
    1. 停止服务 sudo systemctl stop jellyfin
    2. 打包数据目录(含隐藏文件) sudo tar -czvf jellyfin_backup_$(date +%F).tar.gz -C /var/lib/jellyfin .
    3. 如需连同媒体库一起归档(可选) sudo tar -czvf media_backup_$(date +%F).tar.gz -C /path/to/your/media .
    4. 将备份复制到外部存储 cp jellyfin_backup_*.tar.gz /path/to/external/drive/
  • 恢复
    1. 建议先停止服务 sudo systemctl stop jellyfin
    2. 清空或重命名现有数据目录(谨慎操作) sudo mv /var/lib/jellyfin /var/lib/jellyfin.bak_$(date +%F)
    3. 解压备份到目标位置 sudo mkdir -p /var/lib/jellyfin sudo tar -xzvf jellyfin_backup_YYYY-MM-DD.tar.gz -C /var/lib/jellyfin
    4. 如恢复了媒体归档,也解压到你的媒体目录 sudo tar -xzvf media_backup_YYYY-MM-DD.tar.gz -C /path/to/your/media
    5. 修正权限(Jellyfin 通常以 jellyfin:jellyfin 运行,按你的实际环境调整) sudo chown -R jellyfin:jellyfin /var/lib/jellyfin sudo chown -R jellyfin:jellyfin /path/to/your/media
    6. 启动服务并验证 sudo systemctl start jellyfin sudo systemctl status jellyfin
    7. 在 Web 管理端执行库扫描(Dashboard → 库 → 扫描全部库)。

三 Docker 部署的备份与恢复步骤

  • 备份
    1. 停止容器 docker stop jellyfin
    2. 备份配置目录(假设容器名为 jellyfin,挂载到宿主机的 /path/to/config) docker cp jellyfin:/config /path/to/backup/config_$(date +%F)
    3. 如需备份媒体库(挂载到宿主机的 /path/to/media) sudo rsync -av /path/to/media /path/to/backup/media_$(date +%F)
  • 恢复
    1. 如需全新部署,先启动一个临时容器仅用于拷贝回配置(可选) 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
    2. 启动正式容器并挂载已备份的配置与媒体 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
    3. 在 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 修正)。
  • 版本与升级:跨大版本恢复前建议先备份;升级前也建议先备份,升级后如异常可按上述步骤回滚配置目录。
  • 数据库一致性:备份前停止服务能显著降低数据库不一致风险;不建议在运行中直接拷贝数据库文件。

0