温馨提示×

Ubuntu Jellyfin如何进行备份与恢复

小樊
39
2025-12-18 22:16:29
栏目: 智能运维

Ubuntu 下 Jellyfin 备份与恢复

一 备份策略与准备

  • 明确备份范围:Jellyfin 的核心数据在配置与数据库目录(常见为 /var/lib/jellyfin),媒体库建议单独备份或确保已有独立副本。为降低不一致风险,备份前先停止服务:sudo systemctl stop jellyfin。如使用 Docker,先停止容器:docker stop jellyfin。备份完成后用 sudo systemctl start jellyfindocker start jellyfin 恢复服务。以上做法适用于本机部署与容器部署两种场景。

二 本机部署的备份与恢复步骤

  • 快速打包备份(推荐)
    • 备份:sudo tar -czvf jellyfin_backup_$(date +%F).tar.gz -C /var/lib/jellyfin .
    • 恢复:先停止服务,sudo systemctl stop jellyfin;清理或重命名原目录(如 sudo mv /var/lib/jellyfin /var/lib/jellyfin.bak);解包 sudo tar -xzf jellyfin_backup_YYYY-MM-DD.tar.gz -C /var/lib/jellyfin;启动服务 sudo systemctl start jellyfin。
  • 增量同步备份(适合定期增量)
    • 首次:sudo rsync -a /var/lib/jellyfin /path/to/backup/jellyfin/
    • 后续:sudo rsync -a --delete /var/lib/jellyfin /path/to/backup/jellyfin/
    • 恢复:sudo systemctl stop jellyfin;sudo rsync -a /path/to/backup/jellyfin/ /var/lib/jellyfin;sudo systemctl start jellyfin。
  • 说明:媒体库通常体积大且变化频繁,建议与配置库分开备份(例如 rsync 到外部盘或对象存储),以减少停机时间与备份窗口。

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

  • 备份
    • 停止容器:docker stop jellyfin
    • 复制配置目录:docker cp jellyfin:/config /path/to/backup/config
    • 如需一并备份缓存/数据卷(可选):docker cp jellyfin:/var/lib/jellyfin /path/to/backup/jellyfin_data
  • 恢复
    • 启动新容器并挂载已备份的配置(如 /path/to/backup/config 映射到容器内 /config),确保媒体目录挂载正确;如需恢复数据卷,将备份目录映射到 /var/lib/jellyfin。示例:docker run -d --name jellyfin -p 8096:8096 -v /path/to/backup/config:/config -v /path/to/media:/media jellyfin/jellyfin。
  • 提示:容器名、端口与卷路径按你的实际部署调整;恢复时先停旧容器,避免数据写入冲突。

四 自动化与异地备份建议

  • 定时任务示例(本机)
    • 打包备份并保留最近 7 天:
      • 0 2 * * * sudo systemctl stop jellyfin && sudo tar -czvf /backup/jellyfin_$(date +%F).tar.gz -C /var/lib/jellyfin . && sudo systemctl start jellyfin && find /backup -name “jellyfin_*.tar.gz” -mtime +7 -delete
  • 远程/云端备份
    • 使用 rsync 通过 SSH 增量同步到远程主机:rsync -avz -e ssh /path/to/backup/ user@remote:/backup/jellyfin/
    • 挂载对象存储(如 S3 兼容)后拷贝归档:将备份文件 cp 到挂载点(/mnt/oss),或使用 s3cmd/rclone 直接上传。
  • 校验与演练
    • 定期在测试环境做恢复演练,核对 /var/lib/jellyfin 关键子目录(如 data, config, cache 等)是否完整;验证媒体库元数据与播放状态是否正常。

0