Plex Server Sync es un script bash para sincronizar un Plex Media Server con otro Plex Media Server,  incluido el estado de reproducción, el progreso de la reproducción, carteles, metadatos, clasificaciones y configuraciones . Lo único que no se sincroniza son las configuraciones específicas de cada Plex Media Server (como ID del servidor, nombre descriptivo, puerto público, etc.) y los archivos y carpetas enumerados en el archivo plex_rsync_exclude.txt.

Este guión fue escrito para personas que:

  • Ha configurado una instalación limpia de Plex Media Server en un dispositivo diferente y desea migrar su configuración de Plex, metadatos, base de datos, estado de reproducción y progreso de reproducción al nuevo dispositivo.
  • Tiene un servidor Plex principal y un servidor Plex de respaldo y desea mantener el servidor de respaldo sincronizado con el servidor principal.
  • Tiene un servidor Plex en casa y un servidor Plex en su casa de vacaciones y desea sincronizar con el servidor Plex de su casa de vacaciones antes de salir de casa, y luego sincronizar nuevamente con su servidor Plex de casa antes de salir de la casa de vacaciones para regresar a casa.

El script debe ejecutarse en la máquina del servidor plex de origen.

Probado en Synolgy DSM 7, DSM 6 y Asustor ADM. También debería funcionar en Linux.

Qué hace el script

  • Obtiene la versión Plex de ambos servidores Plex.
  • Detiene los servidores Plex de origen y de destino.
  • Realiza una copia de seguridad del archivo Preferences.xml del servidor Plex de destino.
  • Copia todos los archivos de datos más nuevos del servidor Plex de origen al servidor Plex de destino.
    • Los archivos enumerados en el archivo de exclusión no se copiarán.
  • Opcionalmente, elimina cualquier archivo adicional en la carpeta de datos del servidor Plex de destino.
    • Los archivos enumerados en el archivo de exclusión no se eliminarán.
  • Restaura la configuración específica de la máquina del servidor Plex de destino en Preferences.xml.
  • Inicia ambos servidores Plex.

Todo se guarda en un archivo de registro y los errores también se guardan en un archivo de registro de errores.

Lo que NO hace el script

No  realiza  una sincronización bidireccional. Solo sincroniza un servidor Plex con otro servidor Plex.

Descarga el script

Consulte  Cómo descargar el script  para conocer la forma más sencilla de descargarlo.

Requisitos

  1. El script debe ejecutarse en la máquina Plex Media Server de origen.
  2. Los siguientes archivos deben estar en la misma carpeta que plex_server_sync.sh
    plex_server_sync.config
    edit_preferences.sh
    plex_rsync_exclude.txt
  3. Ambos servidores Plex deben ejecutar la misma versión de Plex Media Server
  4. Ambos servidores Plex deben tener la misma ruta de biblioteca
  5. Si el servidor Plex de origen accede a sus bibliotecas multimedia en “/volume1/videos” y “/volume1/music”, entonces el servidor de destino también necesita acceder a sus bibliotecas multimedia en “/volume1/videos” y “/volume1/music”
  6. Claves SSH y sudoers

Si desea programar el script para que se ejecute sin supervisión, como un trabajo cron programado, los usuarios deben tener configurados los sudoers y las claves SSH para que los comandos SSH, SCP y rsync puedan acceder al servidor remoto sin que usted ingrese la contraseña del usuario.

Consulte  https://blog.golimb.com/2020/10/03/synology-ssh-key-authentication/  para conocer los pasos para configurar la autenticación de clave SSH.

Requisitos del NAS Asustor

Debido a que Asustor solo tiene ash Busybox y este script requiere bash, necesitarás instalar bash.

Para instalar bash en su Asustor:

  1. Primero instale Entware desde App Central.
  2. Luego ejecute los siguientes comandos a través de SSH. Puede ejecutar los comandos en “Shell In A Box” desde App Central o usar PuTTY.
    opkg update && opkg upgrade
    opkg install bash

Ajustes

Debe establecer la configuración de origen y destino en el  archivo plex_server_sync.config  . También hay algunas configuraciones opcionales en el archivo plex_server_sync.config.

Por ejemplo:

src_IP=192.168.0.70
src_OS=DSM7
src_Directory="/volume1/PlexMediaServer/AppData/Plex Media Server"
src_User=Bob

dst_IP=192.168.0.60
dst_OS=DSM6
dst_Directory="/volume1/Plex/Library/Application Support/Plex Media Server"
dst_User=Bob
dst_SshPort=22

Delete=yes
DryRun=no
LogPath=~/plex_server_sync_logs

Contenido predeterminado de plex_rsync_exclude.txt

Todos los archivos o carpetas enumerados en plex_rsync_exclude.txt  no  se sincronizarán. Los primeros 4 archivos enumerados nunca deben sincronizarse de un servidor a otro. Las carpetas enumeradas son opcionales.

Contenido de plex_rsync_exclude.txt

Preferences.bak
.LocalAdminToken
plexmediaserver.pid
Cache
Codecs
Crash Reports
Diagnostics
Drivers
Logs
Updates