No se puede restaurar backup desde la cli

Hola,

Estoy intentando restaurar una copia de seguridad y sigo recibiendo este error:

Starting restore: blackiron-2022-12-03-163112-v20221201035918.tar.gz
[STARTED]
'system' ha iniciado la restauración.
Marcando la restauración como en curso...
Asegurándose de que /var/www/discourse/tmp/restores/default/2023-11-28-040817 existe...
Copiando el archivo a un directorio temporal...
Descomprimiendo el archivo, esto puede tardar un tiempo...
EXCEPTION: /var/www/discourse/lib/discourse.rb:138:in `exec': Falló la descompresión del archivo.

gzip: stdin: fin de archivo inesperado
tar: Fin de archivo inesperado en el archivo
tar: Fin de archivo inesperado en el archivo
tar: El error no es recuperable: saliendo ahora
/var/www/discourse/lib/discourse.rb:172:in `execute_command'
/var/www/discourse/lib/discourse.rb:138:in `exec'
/var/www/discourse/lib/discourse.rb:34:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.0/lib/thor/base.rb:584:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Intentando revertir...
No fue necesario revertir.
Limpiando...
Eliminando el directorio temporal '/var/www/discourse/tmp/restores/default/2023-11-28-040817'...
Marcando la restauración como finalizada...
Notificando a 'system' el fin de la restauración...
¡Terminado!
[FAILED]
Restauración completada.

No estoy seguro de por qué dice eso, la copia de seguridad no ha sido modificada desde que la obtuve. Gracias.

Mismo error en la web.

Este es probablemente el error crítico. ¿Has intentado verificar que la copia de seguridad no esté corrupta? Creo que esto funcionaría:

$ gunzip -c  blackiron-2022-12-03-163112-v20221201035918.tar.gz | tar -t > /dev/null
1 me gusta

Mismo problema. No puedo obtener una copia de seguridad nueva porque la configuración RAID del servidor ya no existe, pero necesito estos datos.

image

Revisado el interior de la copia de seguridad. Parece ser válida.

¿Está esto en la misma máquina en la que está restaurando la copia de seguridad? Es posible que el archivo no haya terminado de transferirse o se haya corrompido durante el tránsito.

La copia de seguridad está en mi PC con Windows y estoy usando scp:

scp blackiron-2022-12-03-163112-v20221201035918.tar.gz root@#.#.#.#:/var/discourse/shared/standalone/backups/default

¿La suma de verificación coincide en ambos archivos? (Instrucciones para generar una suma de verificación aquí.)

1 me gusta

Parece que sí. Seguiré investigando con WinRAR, pero si tienes alguna sugerencia, te la agradecería. También recibo la misma advertencia allí, pero puedo verla bien en VSCode.

Si esto ayuda, pigz muestra:

/blackiron-2022-12-03-163112-v20221201035918.tar.gz a <stdout> pigz: saltándose: /blackiron-2022-12-03-163112-v20221201035918.tar.gz: corrupto -- datos de descompresión incompletos

No tengo mucha experiencia en eso. Si puedes conseguir una copia de los archivos, deberías poder crear un nuevo archivo de copia de seguridad para copiarlo.

Intenté escribir mi propio script para solucionarlo, pero no funcionó.

Tampoco soy un experto en gzips, así que no puedo hacer mucho. Si alguien más sabe cómo puedo restaurarlo con acceso completo al script SQL y a las cargas, por favor hágamelo saber. El script SQL está bien a simple vista y las cargas también.

Actualización: Pude restaurar con éxito una versión anterior del sitio, de hace aproximadamente 2 meses. Todavía estoy buscando poner la nueva (más reciente).

Esa es una buena noticia. Encontré una sugerencia para usar The gzip Recovery Toolkit, que suena prometedor.

2 Me gusta

Seguí esta guía y la moví y obtuve este error:

root@ftsweb-app:/var/www/discourse# discourse restore blackiron-2022-12-03-163112-v20221201035918.tar.gz
Starting restore: blackiron-2022-12-03-163112-v20221201035918.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-11-28-060452 exists...
Copying archive to tmp directory...
EXCEPTION: /var/www/discourse/lib/discourse.rb:138:in `exec': Failed to copy archive to tmp directory.
cp: cannot open '/var/www/discourse/public/backups/default/blackiron-2022-12-03-163112-v20221201035918.tar.gz' for reading: Permission denied

Es muy probable que el archivo sea propiedad de otro usuario. ls -l /var/www/discourse/public/backups/default/blackiron-2022-12-03-163112-v20221201035918.tar.gz' mostraría el problema, probablemente.

1 me gusta

Dice que es propiedad de root. ¿Necesito hacerlo el usuario discourse?

Editar: parece que la herramienta hizo más daño.