备份失败:临时备份文件移至 backups/default 目录

临时备份文件的创建过程很顺利。问题出现在将文件从 /var/www/discourse/tmp/backups/default/ 移动到 /var/www/discourse/public/backups/default/ 时。

[2024-01-28 05:47:54] EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to move database dump file.
mv: cannot move '/var/www/discourse/tmp/backups/default/2024-01-28-054559/dump.sql.gz' to '/var/www/discourse/public/backups/default/hungry-onion-2024-01-28-054559-v20230728055813.sql.gz': Permission denied

我该如何解决这个问题?

另外,这个问题是否与我之前创建 /var/discourse/shared/standalone/backups/default/ 文件夹(在容器外)有关,当时我在新实例上使用命令行恢复备份?

目前的权限是 drwxrwxr-x 2 1000 www-data 4096 Jan 27 17:35 default

这两个位置(通常)在同一个磁盘上,所以不可能是磁盘空间问题,因此我确实认为一定是权限问题。当然,备份通常会正常工作——假设您进行了标准安装——所以您手动创建目录似乎与问题有关。

但是。我在我的机器上检查了一下,在容器内部,所有权和保护是这样的:

root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -ltrd /var/www/discourse/tmp/backups/default /var/www/discourse/public/backups/default
drwxr-xr-x 2 discourse www-data 4096 Jan 24 03:36 /var/www/discourse/tmp/backups/default
drwxr-xr-x 2 discourse www-data 4096 Jan 24 03:36 /var/www/discourse/public/backups/default
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /var/www/discourse/tmp/backups/default /var/www/discourse/public/backups/default
drwxr-xr-x 2 1000 33 4096 Jan 24 03:36 /var/www/discourse/tmp/backups/default
drwxr-xr-x 2 1000 33 4096 Jan 24 03:36 /var/www/discourse/public/backups/default
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /var/www/discourse/tmp/backups /var/www/discourse/public/backups
lrwxrwxrwx 1 0 0 19 Jan 10 15:26 /var/www/discourse/tmp/backups -> /shared/tmp/backups
lrwxrwxrwx 1 0 0 15 Jan 10 15:26 /var/www/discourse/public/backups -> /shared/backups
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /var/www/discourse/tmp /var/www/discourse/public
drwxr-xr-x 1 1000 1000 12288 Jan 10 15:31 /var/www/discourse/public
drwxr-xr-x 1 1000   33  4096 Jan 10 15:36 /var/www/discourse/tmp
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /var/www/discourse
drwxr-xr-x 1 1000 1000 4096 Jan 10 15:26 /var/www/discourse
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /shared/backups /shared/tmp/backups
drwxr-xr-x 3 1000 33 4096 Aug 15  2019 /shared/backups
drwxr-xr-x 3 1000 33 4096 Jan 10 15:36 /shared/tmp/backups
root@ubuntu-2gb-nbg1-1-app:/var/www/discourse# ls -nltrd /shared /shared/tmp
drwxr-xr-x 13    0  0 4096 Jan 27  2021 /shared
drwxr-xr-x  4 1000 33 4096 Jan 10 15:35 /shared/tmp

1000 用户是“discourse”,33 组是“www-data”,这一切都不能让我明白您的问题所在。抱歉。

Docker 内部的应用能否看到 Docker 外部的系统?我一直认为无法那样做。

可能有关。尝试删除它。

2 个赞

我不确定到底发生了什么。但昨天晚上系统备份成功了。今天我也手动备份成功了。在这两次备份之间我没有对系统做任何更改。

算了。

2 个赞

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