Saltar a contenido

Archivo de grabaciones de OBS

Actualizado el 30 de julio de 2026.

La Mac de Adoración graba los servicios de OBS en:

/Users/worship/Movies/OBS/Main Recording

El almacenamiento traslada las grabaciones completadas a:

/mnt/bulk-storage/automated_recordings/obs-recordings

El antiguo script obs-backup.sh diario programado en cron confundió una aplicación OBS abierta con una grabación activa y no había archivado con éxito desde el 18 de junio. Está deshabilitado. OBS puede permanecer abierto con el reemplazo; la elegibilidad se decide por archivo.

Modelo de seguridad

El archivo iniciado por el almacenamiento acepta solo archivos regulares mov, mkv y mp4 hijos directos. Se excluyen enlaces simbólicos, extensiones no compatibles, archivos abiertos y archivos más recientes de 30 minutos.

Para cada grabación elegible:

  1. La Mac informa el dispositivo, inode, tamaño, tiempo de modificación y una ruta codificada limitada a la raíz exacta de la grabación.
  2. El almacenamiento transmite sin compresión a un directorio .incoming solo raíz. Las copias interrumpidas se reanudan en el tamaño parcial verificado exacto.
  3. La Mac y el almacenamiento calculan independientemente SHA-256.
  4. El almacenamiento publica atómicamente los bytes verificados en el mismo sistema de archivos ZFS y escribe un manifiesto de resumen e identidad de origen.
  5. El agente Mac restringido vuelve a verificar la identidad, estabilidad, estado abierto y SHA-256 inmediatamente antes de eliminar solo ese archivo de origen.

Cualquier fallo de transferencia, capacidad, resumen, colisión, manifiesto, SSH o finalización retiene el origen de la Mac. Si la publicación tuvo éxito pero se perdió la respuesta SSH final, la próxima ejecución vuelve a verificar el objeto publicado y reintenta solo la finalización en lugar de transferir la grabación nuevamente.

La clave pública SSH dedicada está restringida a las cuatro operaciones limitadas del agente de archivo. Su clave privada permanece solo para root en el almacenamiento y nunca debe imprimirse, copiarse en documentación ni usarse para un shell interactivo.

Programación y estado

La implementación gestionada por Git se encuentra en el repositorio riveroaks/infra bajo apps/obs-archive en la rama feat/obs-recording-archive.

ro-obs-archive.timer verifica cada diez minutos. El servicio de ejecución única tiene un bloqueo de ejecución única, requiere el sistema de archivos ZFS esperado y se detiene por debajo de 2 TiB libres. Las métricas de estado se escriben en:

/var/lib/ro-obs-archive/health.prom

Comprobaciones útiles:

systemctl status ro-obs-archive.service ro-obs-archive.timer --no-pager
journalctl -u ro-obs-archive.service --since "2 hours ago" --no-pager
grep -E '^ro_obs_archive_(run_success|discovered_files|archived_files|failed_files|capacity_low|backlog_stale) ' \
  /var/lib/ro-obs-archive/health.prom

Los registros identifican los archivos solo por un resumen corto y el recuento de bytes, no por el nombre de archivo de la grabación. La telemetría opcional es un servicio separado, por lo que un fallo de observabilidad o en la nube nunca puede cambiar el éxito del archivo local.

No vuelva a habilitar el cron legado junto con el temporizador de systemd. La instalación completa, la reversión, el modelo de amenazas y los procedimientos de incidentes viven con el código de infraestructura.