温馨提示×

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

小樊
45
2025-12-21 11:22:53
栏目: 智能运维

CentOS 上 Jellyfin 的备份与恢复

一 备份与恢复总览

  • 备份对象包含:Jellyfin 的配置与数据目录(常见为 /var/lib/jellyfin/etc/jellyfin)、插件与缓存、以及你的媒体库目录(Jellyfin 仅索引,不存放媒体,但建议一并纳入备份策略)。为减少不一致,建议在备份前短暂停止服务。恢复时按相反顺序进行,并校正目录权限。Jellyfin 默认使用 SQLite(数据文件位于 /var/lib/jellyfin/data/jellyfin.db),若你改用 MySQL/MariaDB,则需额外备份数据库。

二 手动备份与恢复步骤

  • 1 停止服务
    • 执行:sudo systemctl stop jellyfin
  • 2 备份配置与数据
    • 执行:sudo tar -czvf jellyfin_backup_$(date +%F).tar.gz -C /var/lib/jellyfin . && sudo tar -czvf jellyfin_etc_$(date +%F).tar.gz -C /etc/jellyfin .
  • 3 备份媒体库(可选但强烈建议)
    • 示例:rsync -aAX --info=progress2 /path/to/media /path/to/backup/media_$(date +%F)
  • 4 启动服务
    • 执行:sudo systemctl start jellyfin
  • 5 校验
    • 查看备份包:tar -tzf jellyfin_backup_*.tar.gz | head;核对大小与时间戳。
  • 恢复
    • 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_*.tar.gz -C /var/lib/jellyfin
      • sudo tar -xzvf jellyfin_etc_*.tar.gz -C /etc/jellyfin
    • 4 校正权限(常见运行用户为 jellyfin:jellyfin):
      • sudo chown -R jellyfin:jellyfin /var/lib/jellyfin /etc/jellyfin
    • 5 启动服务:sudo systemctl start jellyfin
    • 6 访问 http://服务器IP:8096 验证用户、插件、媒体库是否正常。

三 使用脚本简化备份与恢复

  • 方案A 使用社区脚本 Therkelsen/jellyfin_tools
    • 备份:
      • git clone https://github.com/Therkelsen/jellyfin_tools.git
      • cd jellyfin_tools && chmod +x *.sh
      • sudo ./stop_jellyfin && sudo ./create_jellyfin_backup.sh && sudo ./start_jellyfin
    • 恢复:
      • 将备份包放到脚本同目录或指定位置,执行:sudo ./stop_jellyfin && sudo ./restore_jellyfin_backup.sh && sudo ./start_jellyfin
  • 方案B 使用 Jellyfin 管理界面备份(若版本/插件提供)
    • 登录 http://服务器IP:8096 → 设置 → 备份 → 立即备份,下载生成的压缩包;恢复时在同一位置选择备份文件执行恢复。

四 增量备份与异地容灾

  • 增量备份(基于 tar 快照)
    • 首次快照:sudo tar -czvf jellyfin_full_$(date +%F).tar.gz -g jellyfin_snap.snar -C /var/lib/jellyfin .
    • 后续增量:sudo tar -czvf jellyfin_incr_$(date +%F).tar.gz -g jellyfin_snap.snar -C /var/lib/jellyfin .
    • 恢复顺序:先恢复全量,再依次恢复增量(按时间顺序)。
  • 异地/云端存储(S3 示例)
    • 安装与挂载 s3fs 后(示例命令:sudo s3fs YOUR_BUCKET /mnt/oss -o passwd_file=/etc/passwd-s3fs -o url=https://YOUR_S3_ENDPOINT -o use_path_request_style),将备份包复制到挂载点:cp jellyfin_backup_*.tar.gz /mnt/oss/。恢复时从挂载点取回并本地解压恢复。

五 注意事项与常见问题

  • 权限与所有权:恢复后务必确保 /var/lib/jellyfin/etc/jellyfin 归属运行用户(常见为 jellyfin:jellyfin),否则可能出现无法启动或无法写入的问题。
  • 数据库差异:默认 SQLite 只需备份数据目录(含 jellyfin.db);若使用 MySQL/MariaDB,需额外执行 mysqldump 导出并在恢复时导入。
  • 媒体库路径变更:若恢复后媒体路径改变,需在 Jellyfin 管理后台重新设置库路径并触发扫描。
  • 版本升级前:先完整备份,再执行 sudo yum update jellyfin 或仓库升级,升级后重启服务并核对插件兼容性。

0