La mayoría de los espacios de Confluence tienen un puñado de páginas que importan más que el resto: el runbook de incidentes, el procedimiento de recuperación, la lista de contactos de guardia, el procedimiento operativo estándar que un auditor pedirá ver. Una copia de seguridad del espacio entero las protege junto con todo lo demás, y nuestra guía de acs2md lo cubre. Pero cuando un plan nombra páginas de forma explícita, el operador necesita respaldar, verificar y restaurar exactamente esas páginas, muchas veces desde un portátil y muchas veces con prisa. Eso es lo que hace acp2md desde v1.0.12: page get guarda una página con sus adjuntos, page check te dice si Confluence la sigue teniendo tal como la respaldaste, y page restore la devuelve después de mostrar el plan.
Este tutorial recorre el ciclo sobre una página, desde la primera copia hasta una restauración ensayada, y termina con la evidencia que produce. Los flags se resumen aquí; el manual de acp2md tiene la referencia completa.
Qué añade acp2md v1.0.12
acp2md siempre ha sido un exportador preciso y de solo lectura: una página por ID, título o URL pegada, a Markdown, a una nota de Obsidian o a su payload nativo en ADF o storage. La versión 1.0.12 añade la ruta de escritura que una copia de seguridad necesita, y deja la ruta de lectura exactamente como estaba:
page get --attachments-dir <dir>descarga los adjuntos de una página en<dir>/<page-id>/y los describe, dentro del JSON de la página en ADF o en un archivo lateral en storage. Un archivo de página más su directorio de adjuntos es una copia de seguridad completa de la página.page checkcompara una página respaldada con la página que Confluence tiene ahora: su estado, versión y cuerpo, y los adjuntos y etiquetas que ya no tiene. No cambia nada.page restoredevuelve la página. A una página que sigue vigente se le restaura su versión respaldada, conservando su ID y su historial, o se le escribe el cuerpo respaldado como una versión nueva; una página en la papelera, archivada o eliminada se crea de nuevo bajo su padre respaldado. Se añaden los adjuntos, las etiquetas y las propiedades de contenido que faltan. El plan se muestra y se confirma primero.- Es el primer comando de acp2md que escribe en Confluence, y nunca elimina, envía a la papelera, archiva ni mueve nada.
--dry-runmuestra el plan sin escribir.
Tanto page check como page restore leen también una página de una copia de espacio tomada con acs2md space get, así que un equipo que ejecuta la copia del espacio cada noche puede seguir recuperando una sola página con acp2md.
Paso 1 — Instalar, licenciar y ejecutar doctor
Instala desde Instalación y configuración inicial. acp2md se vende como Hobbyist para un operador y Multiple Seats para un equipo, ambos con una prueba gratuita de 14 días; compáralos en la tienda de Climakers.
acp2md license activate --license-key TU_CLAVE_DE_LICENCIA
acp2md doctor doctor confirma credenciales, conectividad y licencia, y desde v1.0.12 muestra la fila HTTP request timeout (cada petición tiene un plazo de diez minutos por defecto, así que una descarga bloqueada no puede dejar colgada una tarea programada) y una fila Latest version. Pon ACP2MD_CONFLUENCE_DOMAIN, ACP2MD_CONFLUENCE_USERNAME y ACP2MD_CONFLUENCE_API_TOKEN en el entorno de lo que ejecute la copia; la página de Configuración tiene todas las claves.
Paso 2 — Nombra las páginas que protege el plan
acp2md toma una página por ID, por título dentro de un espacio o por la URL que alguien pegó en el canal del incidente. Para una tarea de copia de seguridad, el ID es la elección estable: los títulos se renombran.
# Localiza los ID una vez
acp2md space pages by-key OPS
# Confirma la página antes de respaldarla
acp2md page properties by-id 2973106197 Apunta los ID en la tarea, uno por página protegida. Un plan de continuidad que dice “los runbooks están en Confluence” es más débil que uno que lista tres ID de página y el directorio donde viven sus copias.
Paso 3 — Respalda la página con sus adjuntos
acp2md page get by-id 2973106197 -o ./bcp/runbook.json --attachments-dir ./bcp/attachments page get mantiene atlas_doc_format como valor por defecto, y es el formato correcto para una copia de página: el JSON contiene el título, el padre, la versión, las etiquetas y las propiedades de contenido de la página, que es todo lo que una restauración necesita para devolverla a su sitio. Los adjuntos quedan en ./bcp/attachments/2973106197/, y el JSON describe cada uno con su título, ID de archivo, versión, tamaño y suma de verificación, así que una restauración sabe qué subir y dónde se refiere a ello el cuerpo.
Si prefieres HTML storage, pasa -f storage; los adjuntos se describen entonces en ./bcp/attachments/2973106197.attachments.json, y las comprobaciones y restauraciones posteriores necesitan --title, porque un archivo storage no lleva el título de la página.
Ejecuta esto para cada página protegida, en un directorio que controles y conserves. Súbelo a Git si quieres diferencias entre copias; el JSON es estable.
Paso 4 — Comprueba la página frente a Confluence de forma programada
acp2md page check --file ./bcp/runbook.json --attachments-dir ./bcp/attachments --fail-on-drift -f json > ./bcp/runbook.check.json El informe dice en qué estado está la página en vivo y qué difiere:
| Estado | Significado |
|---|---|
ok | Confluence tiene la versión que respaldaste, con el mismo cuerpo |
changed | La versión o el cuerpo en vivo difieren |
renamed | El título en vivo difiere |
moved | La página está bajo otro padre |
trashed | La página está en la papelera |
archived | La página está archivada |
elsewhere | La página vive ahora en otro espacio |
missing | Confluence ya no la tiene, o estas credenciales no pueden verla |
También lista los adjuntos y etiquetas respaldados que la página en vivo ya no tiene. --fail-on-drift termina con un código distinto de cero cuando algo difiere, que es como un planificador levanta la alerta; el archivo JSON es el registro que conservas. Ejecútalo a diario para las páginas que nombra el plan, y vuelve a ejecutar page get cuando el cambio fuera legítimo, para que la copia siga a la página.
Paso 5 — Restaurar: qué ocurre en cada situación
# Mira primero
acp2md page restore --file ./bcp/runbook.json --attachments-dir ./bcp/attachments --dry-run
# Restaura la página, con sus adjuntos
acp2md page restore --file ./bcp/runbook.json --attachments-dir ./bcp/attachments
# Sin intervención, en un script
acp2md page restore --file ./bcp/runbook.json --attachments-dir ./bcp/attachments --yes El plan va primero y nombra lo que va a pasar:
♻️ Restore "Release Checklist" from ./bcp/runbook.json
Target space: DevOps (DEVOPS)
In Confluence: trashed
Page: create a new page under "2 - Operations" (3133376085)
Attachments: upload 3 (412.0 KB)
Labels: add release, ops
Properties: add the 2 backed-up ones the new page lacks
Note: the original page is trashed; the restore is a new page with a new ID
Restore this page? [y/N] Lo que hace el --mode auto por defecto depende del estado de la página:
| La página en Confluence | Qué hace page restore |
|---|---|
| Vigente, misma versión | Deja el cuerpo; añade los adjuntos, etiquetas y propiedades que falten |
| Vigente, versión más reciente | Restaura la versión respaldada, conservando el ID y el historial de la página; si esa versión ya no está en el historial, escribe el cuerpo como versión nueva |
| Vigente, versión más antigua | Escribe el cuerpo respaldado como una versión nueva |
| En la papelera, archivada, en otro espacio o desaparecida | Crea una página nueva con el título, el cuerpo y el padre respaldados |
--mode create siempre crea una página nueva y --mode update solo toca una página que está vigente. Tres flags más importan en la práctica:
--overwrite-properties. Las aplicaciones guardan estado en propiedades de contenido, por ejemplo una aprobación de control documental. Una propiedad que la página tiene con otro valor se conserva por defecto; pasa este flag para sustituirla por el valor respaldado.--space-keyy--title. Restaura en otro espacio, o con otro título, para un ensayo o una copia de archivo. Un espacio no puede tener dos páginas vigentes con el mismo título, así que cuando una página en vivo ya lo tiene, la restauración se detiene y nombra esa página.--parent-id. Dónde va una página creada cuando el padre respaldado ha desaparecido; si no, queda en la raíz del espacio.
El mensaje de la versión restaurada nombra la fecha de la copia, nunca una ruta de tu máquina. Una creación cuya respuesta se pierde en la red se busca por título antes de hacer nada más, así que un reintento nunca produce un duplicado. Y una página creada es una página nueva: su ID, sus autores, su fecha de creación y su historial de versiones son nuevos, y los enlaces de otras páginas que apuntaban al ID antiguo siguen apuntando allí. La página Restaurar páginas documenta cada caso.
Paso 6 — Ensaya la restauración sin tocar el original
Las revisiones de cumplimiento piden una recuperación probada, no descrita. Restaura la copia en un espacio de archivo con un título de prueba, confirma que se abre con sus adjuntos y registra el resultado:
acp2md page restore --file ./bcp/runbook.json --attachments-dir ./bcp/attachments
--space-key BCPTEST --title "Runbook (prueba de recuperación 2026-Q4)" --yes Retira la página de prueba a mano después; una restauración nunca elimina nada, ni siquiera sus propias páginas de prueba.
Paso 7 — Restaura una página desde una copia de espacio
Si el equipo ejecuta acs2md space get cada noche, acp2md puede comprobar y restaurar una sola página directamente desde esa copia, lo que mantiene a las dos herramientas sobre una misma copia:
acp2md page check --backup-dir /backups/DEVOPS --page-id 3134096561
acp2md page restore --backup-dir /backups/DEVOPS --page-id 3134096561 --dry-run Qué aporta esto a un programa de gobernanza
La cláusula 7.5.3 de ISO 9001:2015 pide que la información documentada esté disponible donde se necesita, protegida y conservada; el control A.8.13 de ISO/IEC 27001:2022 pide copias de seguridad probadas. Para las páginas que un programa de calidad o de seguridad nombra, el ciclo anterior deja:
| Evidencia | Producida por |
|---|---|
| Una copia completa de cada página nombrada | page get --attachments-dir, de forma programada, en un directorio que conservas |
| Prueba de que la copia está al día | page check --fail-on-drift -f json, un registro por ejecución |
| Una restauración probada | el ensayo trimestral en un espacio de archivo, y su comprobación |
| Una copia legible fuera de Confluence | page convert --include-metadata en Git, refrescada con --incremental |
Climakers no está certificado bajo estos marcos; los archivos son la evidencia que presentas a tus propios auditores. El caso de negocio, y cómo la misma evidencia se relaciona con SOC 2 y NIS 2, está en la página de continuidad de negocio para Confluence.
Siguientes pasos
- Flags, estados y cada caso de restauración: Restaurar páginas y Guardar adjuntos
- Las recetas a nivel de página, incluida la de evidencia de continuidad: Flujos
- Espacios completos, con verificación y una restauración ensayada: Backup y restauración de Confluence con acs2md
- Planes y prueba gratuita: la tienda de Climakers; la página de producto: acp2md en climakers.com
Comenta este artículo
Los comentarios están listos para Giscus, pero aún faltan los ajustes públicos del repositorio y la categoría.