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:
- 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.
- El almacenamiento transmite sin compresión a un directorio
.incomingsolo raíz. Las copias interrumpidas se reanudan en el tamaño parcial verificado exacto. - La Mac y el almacenamiento calculan independientemente SHA-256.
- 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.
- 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.