继上次说完 NextCloud 的备份迁移,这次再来说下我是怎么把 Jellyfin 完整迁移到新服务器上的。
对于不知道 Jellyfin 的朋友,这里稍微提几句:Jellyfin 是一个可以自建的多媒体服务器平台,是 Emby 的转向闭源后分叉出来继续开发的开源版本。搭建好 Jellyfin 后,你可以实现跨平台的管理和浏览观看你的多媒体资源(电子书,音频,视频),是目前我所知的三个同类程序(Plex,Emby,Jellyfin)中唯一开源的,推荐跟我一样想要在多个设备上观看自己存的电影或者电视剧的朋友们试试。
Jellyfin 迁移我自己动手操作下来其实挺简单的,那我为什么还会想写这篇迁移经验分享的文章呢?主要是我看到官方的迁移文档里唯独缺了它自己的新旧服务器迁移教程,所以忍不住想写点什么分享下,也算是方便下后来的人吧。
PS:官方的迁移文档在这里:https://jellyfin.org/docs/general/administration/migrate.html
一、前期准备
为了让整个迁移过程尽量保持前后数据的一致性,也为了避免可能存在的其它问题,因此我建议大家迁移之前先做好如下准备:
- 迁移前先将 jellyfin 升级到最新稳定版(直接敲命令:apt update && apt upgrade)
- 升级完成后停止运行 Jellyfin(命令:systemctl stop jellyfin)
- 以上操作做完后在做好旧服务器的备份/快照
二、新服务器环境准备
按照正常的安装步骤在新服务器上全新安装 Jellyfin,教程看官方的或者我写的都没问题:https://hikami.moe/webmaster/program/3986.html
在安装完新服务器上的 Jellyfin 之后,虽然可能影响不大不过我还是不推荐立即配置好 Nginx 运行,建议和旧服务器上的一样安装完成之后先把 Jellyfin 给停了(命令:systemctl stop jellyfin)。
另外,装好之后我们还需要注意 Jellyfin 有个设置项是来确认用户是否有完成设置向导的(IsStartupWizardCompleted,新安装默认设置为 false,即未完成设置向导),由于我们是从旧服务器往新服务器上迁移,肯定是不想再过一遍设置向导的,不然说不定迁移完还会覆盖你旧服务器上程序的设置,所以记得迁移之前把它给修改为 true,这个设置项位于 /etc/jellyfin/system.xml 文件内。
如果不想手动修改的话,直接用 sed 命令替换文件内的有关内容也是可以的:
sed -i '/IsStartupWizardCompleted/s/false/true/' /etc/jellyfin/system.xml
OK,把新服务器上的 Jellyfin 全部配置好之后,就可以开始着手迁移旧服务器上的数据了。
三、旧服务器数据迁移
Jellyfin 的数据迁移是比较好弄的,因为所有的数据都集中在一个文件夹内,其位置为/var/lib/jellyfin,我们可以使用 rsync 来将旧服务器上的该文件夹传输到新服务器同路径下,或者也可以直接用 tar 命令打包文件夹之后传输到新服务器里直接解压覆盖同路径目录。
我这里就只说下 tar 打包的命令了:
tar cvzf jellyfin.tar.gz -C /var/lib jellyfin
PS:和本文无关的一点附加知识,tar 如果直接输入路径打包的话,会将文件夹的路径也一并包含进去,比如你打包/var/lib/jellyfin,然后解压到/var/lib/jellyfin 就会变成/var/lib/jellyfin/var/lib/jellyfin,所以我这里使用了 -C 参数来只打包 jellyfin 文件夹而不用包含该文件夹的路径,这样使用下面的命令解压出来的文件夹路径就是正常的了。
打包之后直接传输到新服务器上,然后解压就好:
tar zxvf jellyfin.tar.gz -C /var/lib
四、新服务器配置修改&重启 Jellyfin
把 Jellyfin 的数据迁移之后,剩下来的事情就比较简单了,主要就是检查下新服务的配置什么的。
这里也给大家提个醒,我们迁移到新服务器上之后,务必记得检查下多媒体文件的存储路径是不是和旧服务器上的一致,如果不一致的话,可能在重启 Jellyfin 之后遇到一点问题,比如找不到文件之类的。
如果配置没有问题的话,就可以重启新服务器上的 Jellyfin 正式上线运行了,命令如下:
systemctl restart jellyfin
好,做到这里打开网站要是也没发现什么问题的话,就可以着手清理旧服务器了,简而言之就是一键删库跑路~
结束
整篇看完,是不是觉得 Jellyfin 迁移还挺简单的?我也这么觉得。但是呢,有一个坑就是别随便改动原来媒体文件的存放路径,不然可能就得删除 Jellyfin 媒体库重新扫描才能找到媒体文件了,也不知道这方面有没有什么解决办法,如果有知道的话欢迎告诉我~
好了就写这么多了,这篇文章写的只是最近想分享的一小部分东西,后面还有好几篇文章等着呢,或许明天可以再写点别的?
PS:本文特色图片出自 Pixiv 画师 DSマイル 的作品《季節を抱きしめて》,原出处链接:https://www.pixiv.net/artworks/88865174