还原失败。请检查日志。

你好

我刚刚删除了我的旧VPS并购买了一个新的(所有都在hetzner上),我正在尝试备份上次的编辑。
我收到了这个日志

[2023-06-04 13:01:35] 正在确保 /var/www/discourse/tmp/restores/default/2023-06-04-130135 存在...
[2023-06-04 13:01:35] 正在将存档复制到tmp目录...
[2023-06-04 13:01:36] 正在解压存档,这可能需要一些时间...
[2023-06-04 13:01:36] EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

gzip: stdin: invalid compressed data--format violated
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

[2023-06-04 13:01:36] /var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33: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'
/var/www/discourse/script/spawn_backup_restore.rb:20:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:33:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2023-06-04 13:01:36] 正在尝试回滚...
[2023-06-04 13:01:36] 无需回滚
[2023-06-04 13:01:36] 正在清理...
[2023-06-04 13:01:36] 正在删除tmp '/var/www/discourse/tmp/restores/default/2023-06-04-130135'目录...
[2023-06-04 13:01:36] 正在将恢复标记为完成...
[2023-06-04 13:01:36] 正在通知 'inj3ct0r' 恢复结束...
[2023-06-04 13:01:38] 完成!
[2023-06-04 22:08:20] EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

您是通过用户界面还是命令行界面执行此操作的?

我正在通过用户界面进行操作

我对此事并不在行,但我觉得你的备份不完整或已损坏。你还有别的备份吗?

3 个赞

我的猜测是,整个备份不知何故没有被传输或上传。

我将尝试通过 scp/rsync 移动它。它需要位于

/var/discourse/shared/standalone/backups/default

2 个赞

这无异于在伤口上撒盐,但下次使用 rsync /var/discourse/,然后运行设置脚本会是更简单的解决方案。

但当然——每个人都应该时不时地测试一下恢复是否真的发生了。

我认为它已完全完成,因为我尝试了另一个,但问题相同。

实际上已上传

我对 discourse 的经验不多,所以不知道如何 rsync 它,有什么影响?

这看起来不像 Discourse 备份的文件名。它应该是一个 .tar.gz.sql.gz 文件。

所以,也许文件在您尝试下载时已损坏。

3 个赞

我将重建容器并上传另一个。

终于成功了!

在多次尝试恢复备份后,由于一些我不知道的原因,它失败了。

我用 Ubuntu 22 重建了服务器,然后安装了 docker-ce,
再次拉取了 discourse 并安装它,
一切顺利!

谢谢大家 :heart:

1 个赞

rsync 是所有 Linux 发行版的普通命令。它是从一个服务器复制目录和文件到另一个服务器的一种(相当常见)方式。它不是 Discourse 的一部分,而是你的操作系统的一部分。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.