自动更新的前提是系统能获取到Jellyfin的最新版本信息。首先需要添加Jellyfin官方YUM仓库,步骤如下:
sudo tee /etc/yum.repos.d/jellyfin.repo << EOF
[jellyfin]
name=Jellyfin Repository
baseurl=https://download.jellyfin.org/yum-repo/rhel/8/\$basearch/
enabled=1
gpgcheck=1
gpgkey=https://download.jellyfin.org/yum/RPM-GPG-KEY-jellyfin
EOF
注意:若CentOS版本不是8,请将rhel/8替换为对应版本号(如CentOS 7替换为rhel/7)。
通过Cron定时任务调用yum update命令实现自动更新,是最基础的自动化方式。
/usr/local/bin/update_jellyfin.sh),内容如下:#!/bin/bash
# 更新Jellyfin并重启服务
sudo yum update jellyfin -y && sudo systemctl restart jellyfin
# 记录更新日志(可选)
echo "$(date): Jellyfin updated and restarted" >> /var/log/jellyfin_auto_update.log
chmod +x /usr/local/bin/update_jellyfin.sh
crontab -e),添加以下内容(例如每天凌晨2点执行):0 2 * * * /usr/local/bin/update_jellyfin.sh
此配置会每天自动检查并安装Jellyfin更新,完成后重启服务。若需要管理多台CentOS服务器,可使用Ansible Playbook实现批量自动更新。
sudo yum install ansible -y
update_jellyfin.yml文件,内容如下:---
- hosts: jellyfin_servers # 替换为你的服务器组名(需在inventory文件中定义)
become: yes # 以root权限执行
tasks:
- name: Update Jellyfin to latest version
yum:
name: jellyfin
state: latest
notify: Restart Jellyfin
handlers:
- name: Restart Jellyfin
systemd:
name: jellyfin
state: restarted
ansible-playbook -i inventory_file update_jellyfin.yml
其中inventory_file是包含目标服务器信息的Ansible清单文件(如[jellyfin_servers] server1 ansible_host=192.168.1.100)。若通过Docker运行Jellyfin,可利用Docker的pull命令和容器重启机制实现自动更新,流程更简单且不易出错。
docker pull命令获取Jellyfin最新镜像:docker pull jellyfin/jellyfin:latest
jellyfin):docker stop jellyfin && docker rm jellyfin
docker run -d \
--name jellyfin \
-p 8096:8096 \
-v /path/to/config:/config \ # 配置文件目录
-v /path/to/cache:/cache \ # 缓存目录
-v /path/to/media:/media \ # 媒体文件目录
jellyfin/jellyfin:latest
0 2 * * * /usr/bin/docker pull jellyfin/jellyfin:latest && /usr/bin/docker stop jellyfin && /usr/bin/docker rm jellyfin && /usr/bin/docker run -d --name jellyfin -p 8096:8096 -v /path/to/config:/config -v /path/to/cache:/cache -v /path/to/media:/media jellyfin/jellyfin:latest >> /var/log/jellyfin_docker_update.log 2>&1
此方式无需手动处理依赖,更新过程更稳定。/var/lib/jellyfin或Docker卷)和媒体数据,防止更新失败导致数据丢失。/var/log/jellyfin_auto_update.log或/var/log/jellyfin_docker_update.log)监控更新过程,及时排查问题。