plex-db-sync是一款用于同步两个Plex服务器数据库观看状态的工具,可同步包括观看时间在内的观看进度信息,适用于系统上的所有用户,且无需额外配置Plex令牌。
适用于需要在多个Plex服务器间保持观看进度一致的场景,例如:
环境准备
安装必要依赖工具:
bashapt-get install sshfs sqlite3
挂载远程数据库
通过sshfs挂载远程Plex服务器的数据库目录至本地:
bashmkdir -p /mnt/sshfs sshfs -o allow_other,IdentityFile=/keys/serverkey -p 22 \ ***:"/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-in Support/Databases/" \ /mnt/sshfs
执行同步脚本
下载并运行脚本,指定服务器数据库路径及启停命令:
bashwget [***] chmod +x plex-db-sync ./plex-db-sync \ --plex-db-1 "/mnt/sshfs/com.plexapp.plugins.library.db" \ --plex-start-1 "ssh -oStrictHostKeyChecking=no -i /keys/serverkey *** service plexmediaserver start" \ --plex-stop-1 "ssh -oStrictHostKeyChecking=no -i /keys/serverkey *** service plexmediaserver stop" \ --plex-db-2 "/data/docker/containers/plex/config/Library/Application Support/Plex Media Server/Plug-in Support/Databases/com.plexapp.plugins.library.db" \ --plex-start-2 "service plexmediaserver start" \ --plex-stop-2 "service plexmediaserver stop"
注意:脚本会短暂停止并重启Plex服务以应用更新,通常不会影响正在播放的客户端(首次大规模同步可能有短暂影响)。
通过docker-compose实现容器化部署,适用于本地与远程服务器同步场景:
yamlversion: '2' services: plex-db-sync: image: nowsci/plex-db-sync container_name: plex-db-sync volumes: - /etc/localtime:/etc/localtime:ro # 同步系统时区 - ./plex-db-sync/sshkey:/sshkey # SSH密钥挂载 - /docker/plex/Library/Application Support/Plex Media Server/Plug-in Support/Databases/:/mnt/DB2 # 本地数据库路径 cap_add: - SYS_ADMIN # 允许文件系统挂载 devices: - /dev/fuse # 提供fuse设备支持 security_opt: - apparmor:unconfined # 禁用AppArmor限制 environment: - CRON=0 4 * * * # 每天凌晨4点执行同步 - S1_SSH_KEY=/sshkey # 远程服务器SSH密钥路径 - S1_SSH_USER=root # 远程服务器SSH用户 - S1_SSH_HOST=hostname # 远程服务器主机名/IP - S1_SSH_PORT=22 # 远程服务器SSH端口 - S1_SSH_PATH=/docker/plex/Library/Application Support/Plex Media Server/Plug-in Support/Databases # 远程数据库路径 - S1_START=ssh -oStrictHostKeyChecking=no -i /sshkey root@hostname 'cd /docker; docker-compose up -d plex' # 远程Plex启动命令 - S1_STOP=ssh -oStrictHostKeyChecking=no -i /sshkey root@hostname 'cd /docker; docker-compose stop plex' # 远程Plex停止命令 - S2_DB_PATH=/mnt/DB2 # 本地数据库路径 - S2_START=cd /docker; docker-compose up -d plex # 本地Plex启动命令 - S2_STOP=cd /docker; docker-compose stop plex # 本地Plex停止命令 restart: always
| 命令行参数 | Docker变量 | 描述 |
|---|---|---|
--backup <true/false> | BACKUP | 执行SQL操作前是否创建数据库备份 |
--debug <true/false> | DEBUG | 是否输出调试信息 |
--dry-run <true/false> | DRYRUN | 仅模拟同步操作,不实际修改数据库 |
--plex-db-(1/2) | S(1/2)_DB_PATH | 服务器数据库路径(脚本模式为文件路径,Docker模式为目录路径) |
--plex-start-(1/2) | S(1/2)_START | 启动对应Plex服务器的命令 |
--plex-stop-(1/2) | S(1/2)_STOP | 停止对应Plex服务器的命令 |
--nocomparedb <true/false> | n/a | 是否跳过Plex服务器版本数据库比较 |
| n/a | CRON | 定时同步任务表达式(默认:0 4 * * *,每天凌晨4点) |
| n/a | INITIALRUN | 容器启动时是否在定时任务前先执行一次同步 |
| n/a | S(1/2)_SSH_KEY | SSH身份验证密钥文件路径 |
| n/a | S(1/2)_SSH_USER | SSH连接用户名 |
| n/a | S(1/2)_SSH_HOST | SSH服务器主机名/IP地址 |
| n/a | S(1/2)_SSH_PORT | SSH服务端口 |
| n/a | S(1/2)_SSH_PATH | SSH服务器上的数据库目录路径 |
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429